<<list-links filter:"[tag[_extra_info]sort[]]">>
<$list filter="[all[tiddlers+shadows]fields[]sort[]]" variable="field">
<$list filter="[all[tiddlers+shadows]has:field<field>count[]]" variable="count">
<<field>> : <<count>> <br/>
</$list>
</$list>
\define getData()
<$list filter="[all[missing]!has[draft.of]sort[title]]">
<$text text="[["/>{{{ [<currentTiddler>backlinks[]count[]divide[1000]removeprefix[0.]] }}};<<currentTiddler>><$text text="]]"/><br>
</$list>
\end
\define renderTable()
<table>
<tr><th>Missing</th><th>Times Referenced</th></tr>
<$list filter="[enlist<missing>!sort[]]">
<tr>
<td>{{{ [<currentTiddler>split[;]rest[]join[;]] }}}</td>
<td style="text-align:right;"><$text text={{{ [<currentTiddler>split[;]first[]divide[1]] }}}/></td>
</tr>
</$list>
</table>
\end
\define renderList()
<ul>
<$list filter="[enlist<missing>!sort[]]">
<li> {{{ [<currentTiddler>split[;]rest[]join[;]] }}} (<$text text={{{ [<currentTiddler>split[;]first[]divide[1]] }}}/>)</li>
</$list>
</ul>
\end
<$list filter="[all[missing]limit[1]]" variable="has_missing_tiddlers"
emptyMessage="<p>No Missing Tiddlers</p>">
<$wikify name="missing" text=<<getData>>>
<<renderList>>
</$wikify>
</$list>
* Prototype/klasse
* Scheepsklasse
---
!!! Hulpmijnenleggers (Ned)
* [[Koningin Emma (1940)]]
* [[Prins Willem I (1940)]]
* [[Bulgia (1884)]]
* [[Vidar (1879)]]
!!! Hulpmijnenleggers (NI)
* [[Soemenep (1941)]]
* [[Bangkalan (1942)]]
* `Ram ()` onafgebouwd; nooit in dienst geweest.
* `Regulus ()` onafgebouwd; nooit in dienst geweest.
* [[Rigel (1931)]]
!!! Stoomsleepboot
* `Triton ()` 19xx-1940 (kleine foto bij sleepboten)
Niet te verwarren met:
* [[Triton (1914)]] 1914-1940 (ex-trawler)
* [[Triton (1948)]] 1948-1953 (oorlogsbuit)
!!! Hulppatrouilleboot
# `P40 ()`
!!! Patrouilleboot
# `Mastijn ()` 19xx-1942 (3 personen omgekomen 10-1-1942)
---
* [[M881 (Ex- RP 104 “Jakhals”)|https://onzevloot.weebly.com/m-881---882---883.html]]
* [[M882 (Ex- RP 105 “Panter”) |https://onzevloot.weebly.com/m-881---882---883.html]]
* [[M883 (Ex-RP 106 “Hermelijn”)|https://onzevloot.weebly.com/m-881---882---883.html]]
* [[Hr.Ms. Keeten. ex HMS HDML 1337 {RP 104, MV 31, M 881, Y 8128}|https://onzevloot.weebly.com/hrms-keeten.html]]
* [[Hr.Ms. Mastgat. Hrex-HMS HDML 1400 {RP 105, MV 32, M 882, Y 8129}|https://onzevloot.weebly.com/hr-ms-mastgat.html]]
* [[Hr.Ms. Zijpe. ex-HMS HDML 1483 {RP 106, MV 33, M 883, Y 8130}|https://onzevloot.weebly.com/hrms-zijpe1.html]]
* [[hr.ms. Vulkaan|https://onzevloot.weebly.com/vulkaan.html]]
* [[Dreg I|https://onzevloot.weebly.com/dreg-i.html]]
* [[Dreg II|https://onzevloot.weebly.com/dreg-ii.html]]
* [[Dreg III|https://onzevloot.weebly.com/dreg-iii.html]]
* [[Dreg IV|https://onzevloot.weebly.com/dreg-iv.html]]
----
NIMH
Regionaal patrouillevaartuig RP 104 Hr.Ms. Jakhals (1946-1949) (ex-HDML 1337) te Muntok.
Het schip is in februari 1945 als Empire Scotia op stapel gezet voor The British Ministry of War Transport (BMWT).
Tijdens de bouw, december 1945, werd het schip overgenomen door de RL en werd omgedoopt in Modjokerto.
De M 881 is de ex Hr.Ms. RP 104 (Jakhals) en heeft in Indonesië dienst gedaan. Het schip zal in februari 1953 in dienst gesteld worden als Hr.Ms. Keeten.
HMS HDML 1337 (ML 1337)<br>
Harbour Defence Motor Launch of the HDML class
button.tc-tag-label, span.tc-tag-label {
display: inline-block;
padding: 0.16em 0.7em;
font-size: 0.9em;
font-weight: 400;
line-height: 1.2em;
color: black; /*<<colour tag-foreground>>;*/
white-space: nowrap;
vertical-align: baseline;
background-color: red; /*<<colour tag-background>>;*/
border-radius: 1em;
}
/* button.tc-tag-label, span.tc-tag-label { */
background-color: red;
color: black;
fill: black;
}
/* .tgc-topmenu .tc-tag-label {*/
background-color: purple;
fill: black;
color: black;
}
\define imageh(source,height)
<a href="Foto/$source$" title="Klik voor een grotere versie (opent in een aparte tab)" target="_blank">
<img src="Foto/$source$" width="" height="800"/>
</a>
\end
<$list filter="[tag[scheepsfoto]random[1]]">
<$transclude mode="block"/>
</$list>
<style>
.cf3 {
position:relative;
height:281px;
width:450px;
margin:0 auto;
}
.cf3 img {
position:absolute;
left:0;
-webkit-transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-o-transition: opacity 1s ease-in-out;
transition: opacity 1s ease-in-out;
}
@keyframes cf3FadeInOut {
0% {
opacity:1;
}
45% {
opacity:1;
}
55% {
opacity:0;
}
100% {
opacity:0;
}
}
.cf3 img.top {
animation-name: cf3FadeInOut;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
animation-duration: 10s;
animation-direction: alternate;
}
</style>
Gelabeld met `$:/tags/modal`
* [[_Modal foto tiddlers]] (deze tiddler)
* [[Vliegtuigfoto button]] in Top menu (`$:/plugins/tongerner/topmenu/topmenu`)
* [[Scheepsfoto button]] in Top menu (`$:/plugins/tongerner/topmenu/topmenu`)
* [[Vliegtuigfoto]]
* [[Scheepsfoto]]
* [[Trigger-icon]] ({{Trigger-icon}})
* [[Sluitknop-icon]] ({{Sluitknop-icon}})
* [[Footer]] bevat tekst omtrent popups en links
* $:/_styles_techniek bevat onder het kopje ''Modal CSS'' stijlen voor modal
* [[Links]] dummy tiddler. Links in een modal werken niet. Wat wel werkt: rechts klikken op de link en 'Open in een nieuwe tab'
De - willekeurige - vliegtuig-/scheepsfoto's maken gebruik van de Random plugin $:/plugins/tobibeer/random van Tobias Beer.<br>
Om een volgende foto te triggeren dient op een knop gedrukt te worden (b.v. de tabs in de sidebar die in principe knoppen zijn).<br>Eerst gepoogd een `message` in een knop te misbruiken (zonder resultaat), daarna een dummy tab (werkte wel, maar veel styling noodzakelijk) en tenslotte een dummy knop met `set` en `setTo`. Om 'dirty state' te vermijden is `set="$:/temp/temp" setTo=""` gebruikt (`$:/temp/..` wordt niet opgeslagen).
* $:/_mouseover-macro
* $:/_styles_techniek bevat onder het kopje ''MOUSEOVER STYLES'' de stijlen voor mouseovers
De scheepstype tiddlers (gelabeld met {{type||$:/core/ui/TagTemplate}}) bevatten allemaal:
```
<style>
html .tgc-tooltip .tgc-tooltiptext {
min-width: 640px;
}
</style>
```
De `min-width` kan per tiddler verschillend zijn (aangepast aan de te tonen info).<br>Zonder `min-width` krijgen de tiddlers de breedte van het langste woord. Di i.t.t. b.v. popups!
<<popup Fregat Fregat>>
<<mouseover Fregat Fregat>>
<<mouseover Test _Test>>
|bb |mm|
|<<mouseover Fregat Fregat>>||
file:///home/ton/stack/Downloads/TW_Amsterdam/Techniek.html
!!! Voor publicatie
# Verwerk toevoegingen van deze maand in maandtiddler
# [[Verwijder 'state' tiddlers:|$:/plugins/tg/toolbar/search-delete-tiddlers]]
#* $:/state/... (algemeen: tabs etc.)
#* $:/temp/... (alle sliders inklappen en 'zoek' legen)
# ''Zet alle tabs van [[Techniek|Techniek »]], [[Hulp]], [[Zoek]] en [[Nieuw toegevoegd]] goed!'' ($:/state/ tiddlers!)
# Adjust sidebar tabs (niet echt nodig)
# Start publicatieprocedure (klik {{$:/publish-button}})
## Vink 'Show tiddler tags' uit
## Klik ''Verberg knoppen & tabs''
## Klik ''Save''
## Refresh TW en kijk of alles goed gegaan is
## Bij kopiëren naar B3 NAS (bin > mountB3web T#99i/T1972) checken op permissies!!<br>'Read' voor Owner, Group & Others; 'Write' voor Owner => 644 = `rw-r--r--`
<<slider "Website (server)" "Website (server)">>
!!! Na publicatie
# Zoek (advanced search, tab System): 'Publish'
# Open $:/publish
## Klik ''Toon knoppen & tabs''
## Klik ''Save''
## Refresh TW en kijk of alles goed gegaan is
# Nieuwe maand maken (kloon b.v. [[2018-04]], pas titel ''en caption'' aan.
---
''@@color:red;===<<slider "Saving filter" "Saving filter">>===@@''
''@@color:red;===<<slider "Verdwenen top menu" "Verdwenen top menu">>===@@''
''@@color:red;===<<slider "Filter operator" "Filter operator">>===@@''
---
! Dingen die je moet weten
{{$:/__denk_er_om}}
\define checks(filter)
<$list filter="$filter$">
<tr>
<td>
<$view field="description"/>
</td>
<td><$link to={{!!title}}>
<$view field="title"/>
</$link>
</td>
</tr>
</$list>
\end
<style>
th {
text-align: left;
}
</style>
!! Alle checks
<table>
<tr>
<th>Beschrijving </th>
<th>Tiddler </th>
</tr>
<<checks "[tag[$:/tags/check]sort[]]">>
</table>
!!! Algemene checks
* <<slider "Check schepen" "Check schepen">>
* <<slider "Check schepen 2" "Check schepen 2">>
* <<slider "Check schepen 3" "Check schepen 3">>
* <<slider "Check schepen 4" "Check schepen 4">>
* <<slider "Check schepen 5" "Check schepen 5">>
* <<slider "Check vliegtuigen" "Check vliegtuigen">>
* <<slider "Check vliegtuigen 2" "Check vliegtuigen 2">>
* <<slider "Check vliegtuigen 3" "Check vliegtuigen 3">>
<<tabs "$:/_tags_voor_data_en_foto's $:/_readonly_tiddlers $:/_afkortingen $:/_Templates $:/_be_aware $:/_splash_screen [[_Mouseover tiddlers]] [[_Modal foto tiddlers]] [[Autolist schepen met pennantnummer]]">>
* ~~Save button in $:/publish~~
* ~~Disable Mario's Tab links plugin voor het saven~~
* ~~Op de een of andere manier aangeven dat er een foto is van een schip in die klasse~~
A828
{{A828_Walcheren_vraag.jpg}}
!Transcluded afkortingen
!! MLD
* ''VM'': {{VM}}
!! Marine
* ''NI'' : {{NI}}
* ''GM'' : {{GM}}
* ''KD'' : {{KD}}
* ''MES'' : {{MES}}
!!!! Brits => Nederlands
* ''MMS'' : {{MMS105}} & {{MMS126))
!!!! US => Brits => Nederlands
* ''YMS46'' : {{YMS46}}
* ''YMS47'' : {{YMS47}}
!!!! US => Nederlands
* ''US-NL'' : {{US-NL}}
* ''MDAP'': <$transclude tiddler="MDAP" mode="block"/>
!!!! Nieuwe scheepstypen
* ''JSS'': {{JSS}}
* ''LCF'': {{LCF}}
* ''LPD'': {{LPD}}
* ''MOV'': {{MOV}}
* ''NLF'': {{NLF}}
* ''OOV'': {{OOV}}
* ''OPV'': {{OPV}}
* ''OZB'': {{OZB}}
!!! Karakters
* Komma `’` => `'`
* Twee sliders onder elkaar komen achter elkaar. Standaard linebreak (newline) werkt niet, `<br>` wel
* Geen CamelCase in label van `<<popup ....>>` (Chrome issue! bekend van slider macro)
```
<<popup Mijnenveger Mijnenveger>>
```
renders as:
<<popup Mijnenveger Mijnenveger>>
```
<<mouseover Mijnenveger Mijnenveger>>
```
renders as:
<<mouseover Mijnenveger Mijnenveger>>
Als geen plaatje beschikbaar is, lengte.gif [img width= 200 [Images/Lengte.gif]]
> scheepssilhouet: 200m = 660px
Registratie: (1940-1944 Duits: ''M 553'')
In 1950 geklassificeerd als fregat.<br>
<div class="tgc-fixed">
<$button class="tc-btn-invisible tgc-button-color">
▲
<$list variable='Target' filter='[list[$:/StoryList]first[]]'>
<$action-navigate $to=<<Target>>/>
</$list>
</$button>
</div>
<style>
.tgc-fixed {
position: fixed;
bottom: 10px;
right: 10px;
padding: 8px;
background-color: white;
}
.tgc-button-color {
color: red;
}
.tgc-button-color:hover {
color: blue;
}
</style>
<iframe src="http://free.timeanddate.com/clock/i5g30az7/n1298/tlnl14/fn17/fc04b/tct/pct/ahl/ftb/pd2/tt0/tw0/tb1" frameborder="0" width="237" height="20" allowTransparency="true"></iframe>
<$checkbox tiddler="$:/core/ui/EditTemplate/fields" tag="$:/tags/ViewTemplate"> Field handling in view mode</$checkbox>
werkt niet goed
```
[tag[schipdata]!sort[per]]-$:/_ship_details_template
```
```
[tag[scheepsfoto]] +[!sort[]] +[limit[10]]
```
```
[tag[vliegtuigfoto]] +[!sort[]] +[limit[10]]
```
```
[has:field[class]]+[!has[class]]
```
```
[has:field[image]]+[!has[image]]
```
```
[has:field[ships]]+[!has[ships]]
```
```
[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]
```
```
[!is[system]tag[schipdata]search:image[Images/Lengte.gif]]
```
```
[search:field[xxx]]
```
```
[!is[system]tag[schipdata]!has:field[reg]sort[title]]
```
```
[!is[system]tag[schipdata]!search:image[Images/]]
```
```
[is[system]sort[title]]+[prefix[$:/_]]
```
```
[tag[schipdata]!sort[created]limit[20]] -$:/_ship_details_template
```
```
[tag[schipdata]] +[!search:text[slider]] -$:/_ship_details_template
```
/* COLOR OF NEW TIDDLER ICON IN TOOLBAR */
.tc-topbar button svg.tc-image-new-button {
fill: yellow;
}
.tc-topbar button:hover svg.tc-image-new-button,
.tc-topbar button a:hover svg.tc-image-new-button {
fill: #0044BB;
}
/* REMOVE DESCRIPTIONS OF BUTTONS IN TOOLS TAB */
.tc-sidebar-lists .tc-muted {
display:none;
}
/* GENERAL FONT */
body.tc-body {
font-family: Verdana, Geneva, "DejaVu Sans", sans-serif;
}
textarea, input[type="text"], input[type="search"], input[type=""], input:not([type]) {
font-family: Inconsolata, Consolas, monospace, serif;
font-size: 1.3em;
}
/* EDITOR FONT */
textarea.tc-edit-texteditor {
font-family: Inconsolata, Consolas, monospace, serif;
font-size: 1.3em;
}
/* FONT CODE ETC. */
code, kbd, pre, samp {
font-family: Inconsolata, Consolas, monospace, serif;
font-size: 1.1em;
}
/* TAG ENTRY */
.tc-edit-add-tag .tc-add-tag-name input {
font-size: 1.3em;
}
/* FIELD ENTRY */
.tc-edit-field-add-name input.tc-edit-texteditor {
font-size: 1.3em;
}
.tc-edit-field-add-value input.tc-edit-texteditor {
font-size: 1.3em;
}
<<imageh plaatje.jpg 400>>
//<<mouseover >>//
\define imageh(source,height)
<a href="Foto/$source$" title="Klik voor een grotere versie (opent in een aparte tab)" target="_blank">
<img src="Foto/$source$" width="" height="$height$"/>
</a>
\end
```
\define imageh(source,height)
<a href="Foto/$source$" title="Klik voor een grotere versie (opent in een aparte tab)" target="_blank">
<img src="Foto/$source$" width="" height="$height$"/>
</a>
\end
<<imageh "image.ext" height>>
```
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
\define listlinks(filter)
<$list filter="$filter$">
<$link to={{!!title}}>
<$transclude field="caption">
<$view field="title"/>
</$transclude>
</$link>
<br>
</$list>
\end
```
\define listlinks(filter)
<$list filter="$filter$">
<$link to={{!!title}}>
<$transclude field="caption">
<$view field="title"/>
</$transclude>
</$link>
<br>
</$list>
\end
```
\define mouseover(label,text)
<div class="tgc-tooltip">
<span style="font-size=0.8em; color: #2E66C7; font-weight: bold;">$label$</span>
<div class="tgc-tooltiptext">
{{$text$}}
</div>
</div>
\end
```
\define mouseover(label,text)
<div class="tgc-tooltip">
<span style="font-size=0.8em; color: #2E66C7; font-weight: bold;">$label$</span>
<div class="tgc-tooltiptext">
{{$text$}}
</div>
</div>
\end
```
```
Usage:
<<mouseover label tiddler>>
```
\define w(width:"640px")
<style>
html .tgc-tooltip .tgc-tooltiptext {
min-width: $width$;
}
</style>
\end
```
\define w(width:"640px")
<style>
html .tgc-tooltip .tgc-tooltiptext {
min-width: $width$;
}
</style>
\end
```
```
Usage:
<<w>>
<<w 400px>>
```
<svg class="tgc-plane-button tc-image-button" width="28pt" height="28pt" viewBox="0 0 490.941 490.941">
<g>
<g id="svg_1">
<path id="svg_2" d="m477.8,293.387l-75.9,-75.9c9.8,-13.4 32.4,-49.7 1.9,-100.4l12.5,-12.5l29.2,29.2c12.2,11.7 25,4.2 29.2,0c8.3,-8.3 8.3,-20.9 0,-29.2l-88.6,-88.6c-8.3,-8.3 -20.9,-8.3 -29.2,0c-8.3,8.3 -8.3,20.9 0,29.2l30.1,30.2l-13,12.6c-15.7,-9.6 -55.4,-26 -99.2,3.5l-77.5,-77.5c-18.8,-18.8 -49,-17.7 -67.8,1l-21.9,21.9c-26.3,31.4 -10.4,58.4 -1,67.8l86.2,86.2l-67.7,86.5l-18.5,-18.5c-47.8,-41 -88.6,3.1 -88.6,3.1c-24,24 -24,62.6 0,86.5l125.1,124.1c39.1,33.7 72.1,12.4 87.6,-3.1c23.9,-24.1 24,-62.6 0,-86.5l-15.4,-15.4l86.6,-67.7l84.1,84.1c8.3,9.4 36.1,25.7 67.8,-1l22.9,-21.9c18.8,-19.8 18.8,-50 1.1,-67.7zm-343,-216.9c-1,-2.1 -2.4,-5.8 2.1,-10.4l21.9,-21.9c3.1,-2.1 7.3,-3.1 9.4,-1l78.7,78.7l-29.3,37.4l-82.8,-82.8zm68.8,363.9c0,0 -13.8,16.8 -32.3,3.1l-124.1,-124.1c-15.9,-17.3 3.1,-31.3 3.1,-31.3c13.8,-11.5 25,-4.2 28.1,-1l125.1,124.1c11.2,11.6 4.3,25 0.1,29.2zm-49.9,-134.4l135.4,-173.2c28.6,-32.2 61.5,-13.6 71.9,-3.1s28.7,42.3 -3.1,71.9l-173.2,135.5l-31,-31.1zm293.9,24.9l-21.9,21.9c-3.6,4.5 -9.4,3.1 -10.4,2.1l-80.5,-80.5l36.9,-28.9l77,76.1c2,2 2,6.2 -1.1,9.3z"/>
</g>
<g id="svg_3"/>
<g id="svg_4"/>
<g id="svg_5"/>
<g id="svg_6"/>
<g id="svg_7"/>
<g id="svg_8"/>
<g id="svg_9"/>
<g id="svg_10"/>
<g id="svg_11"/>
<g id="svg_12"/>
<g id="svg_13"/>
<g id="svg_14"/>
<g id="svg_15"/>
<g id="svg_16"/>
<g id="svg_17"/>
</g>
</svg>
<svg class="tgc-navy-ship-button tc-image-button" width="32pt" height="32pt" viewBox="0 0 20 20">
<path d="M16.7,10l-0.9-5.6L11,2.5V0.2H9v2.3L4.2,4.4L3.3,10L0,12l3,7.7h14l3-7.7L16.7,10z M6,5.8l4-1.6l4,1.6l0.5,2.8L10,5.9 L5.5,8.7L6,5.8z M15.7,17.8H4.3l-1.9-5L10,8.2l7.6,4.6L15.7,17.8z"/>$:/_new_ship_icon</svg>
<$button message="tm-new-tiddler" tooltip="New image template tiddler" class=<<tv-config-toolbar-class>> param="$:/_image_template">
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/core/images/picture}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text="new template tiddler"/>
</$list>
</$button>
<$button message="tm-new-tiddler" tooltip="New plane details template tiddler" class=<<tv-config-toolbar-class>> param="$:/_plane_details_template">
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/_new_plane_icon}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text="new template tiddler"/>
</$list>
</$button>
<$button message="tm-new-tiddler" tooltip="New ship details template tiddler" class=<<tv-config-toolbar-class>> param="$:/_ship_details_template">
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/_new_ship_icon}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text="new template tiddler"/>
</$list>
</$button>
\define penlinks(filter,char)
<$list filter="[has[reg]regexps:reg[($char$\d\d\d)]each:value[title]sort[]]" variable="code">
<$list filter="[search:reg<code>]">
<tr>
<td>
<<code>>
</td>
<td>
<$link to={{!!title}}>
<$view field="title"/>
</$link>
</td>
<td>
<$view field="per"/>
</td>
<td>
<$view field="reg"/>
</td>
</tr>
</$list>
</$list>
\end
```
\define penlinks(filter,char)
<$list filter="[has[reg]regexps:reg[($char$\d\d\d)]each:value[title]sort[]]" variable="code">
<$list filter="[search:reg<code>]">
<tr>
<td>
<<code>>
</td>
<td>
<$link to={{!!title}}>
<$view field="title"/>
</$link>
</td>
<td>
<$view field="per"/>
</td>
<td>
<$view field="reg"/>
</td>
</tr>
</$list>
</$list>
\end
```
!!!!Usage
```
<<penlinks filter char>>
```
<$tiddler tiddler=<<currentTab>>>
{{||$:/_pennantnummer_template}}
</$tiddler>
<!--
1) Kloon $:/_pennantnummer_details_template
2) Hernoem tiddler tot 'Schepen' (b.v. Fregatten)
3) Vervang in veld 'filter' de 'C' (voor kruisers) door het bijbehorende voorvoegsel toe (voor fregatten 'F')
<<penlinks filter char>>
vereist in TW5.1.17 $:/core/modules/filters/regexps.js
-->
!! {{!!schepen}} volgens pennantnummer
<table>
<tr>
<th colspan="4">{{!!schepen}}</th>
</tr>
<tr>
<th># </th>
<th>Naam schip </th>
<th>Dienstperiode </th>
<th>Opmerkingen qua registratie </th>
</tr>
{{!!filter}}
</table>
<style>
th {
text-align: left;
}
</style>
@@font-family:arial;font-size:9.5pt;
<a href={{!!image}} target="blank"><$image source={{!!image}} width={{!!image-w}} alt={{!!title}}/></a><br>{{!!title}}, {{!!soort}}
|Info|Type|In dienst| Gewicht<br>(kg)<br>leeg/max. | Lengte<br>(m) | Span-<br>wijdte<br>(m) | Hoogte<br>(m) | Vleugel-<br>oppervlak<br>(m^^2^^) | Vermogen | Snelheid<br>(km/hr)<br>max./kruis | Actier-<br>adius<br>(km) | Plafond<br>(m) |Man|Extra|h
|<a href={{!!url1}} target="_blank">{{!!url-i1}}</a><br><a href={{!!url2}} target="_blank">{{!!url-i2}}</a>|{{!!soort}}| {{!!per}} | {{!!gew}}| {{!!l}}| {{!!b}}| {{!!h}}| {{!!opp}}| {{!!hp}}| {{!!speed}}| {{!!rad}}| {{!!plaf}}| {{!!man}}|{{!!extra}}|
|^Informatie|{{!!info}}|>|>|>|>|>|>|>|>|>|>|>|>|>|
@@
\define popup(label,text)
<$appear type="popup" show="$label$ ▴" $state="$text$">
{{$text$}}
</$appear>
\end
```
\define popup(label,text)
<$appear type="popup" show="$label$ ▴" $state="$text$">
{{$text$}}
</$appear>
\end
GEEN CamelCase in label (Chrome probleem!)
```
* $:/publish
* $:/publish-button
* $:/publish-image
* $:/publish-styles
\define searchInField(field:"reg", for, ci)
<$list filter="[!is[shadow]!is[system]regexp:$field$[$for$$ci$]]">
<dd><$link><$view field="title"/></$link> <$view field="reg"/></dd>
</$list>
\end
<!-- Gebruikt $:/fieldsearch met 1 veld -->
<!-- Geen $:/temp/fieldsearch want $:/temp wordt gewist -->
<!-- Veld 'field'=reg -->
Zoeken in ''registratie'' (naam, pennantnummer)
<<<
''N.B.:''<br>Zoeken is hier ''hoofdlettergevoelig''!
<<<
* Boegnaam (voor oude schepen), b v. ''Buffel''
* Boegnummer/pennantnummer, b.v. ''F801''
<div class="tc-search">
<$edit-text tiddler="$:/fieldsearch" type="search" tag="input"/>
<$reveal state="$:/fieldsearch" type="nomatch" text="">
<$button class="tc-btn-invisible">
<$action-setfield $tiddler="$:/fieldsearch" $field="text" $value=""/>
{{$:/core/images/close-button}}
</$button>
</$reveal>
</div>
<$reveal state="$:/fieldsearch" type="nomatch" text="">
<$reveal state="$:/fieldsearch!!field" type="match" text="">
<dl>
<$list filter="[!is[shadow]!is[system]fields[]]" variable="field">
<$reveal type=nomatch text=text default=<<field>>>
<$macrocall $name="searchInField" field=<<field>> for={{$:/fieldsearch}} ci={{$:/fieldsearch!!case-insensitive}}/>
</$reveal>
</$list>
</dl>
</$reveal>
<$reveal state="$:/fieldsearch!!field" type="nomatch" text="">
<dl>
<$macrocall $name="searchInField" field={{$:/fieldsearch!!field}} for={{$:/fieldsearch}} ci={{$:/fieldsearch!!case-insensitive}}/>
</dl>
</$reveal>
</$reveal>
@@font-family:arial;font-size:10pt;
<a href={{!!image}} target="blank"><$image source={{!!image}} width={{!!image-w}} alt={{!!title}}/></a><br>{{!!title}}, {{!!soort}}
|Info|Type|Prototype/<br>klasse|In dienst|Tonnage<br>(standaard/max.)| Lengte<br>(m) | Breedte<br>(m) | Diepgang<br>(m) | HP<br>(pk) | Snelheid<br>(knopen) |Bemanning|Extra|h
|<a href={{!!url1}} target="_blank">{{!!url-i1}}</a><br><a href={{!!url2}} target="_blank">{{!!url-i2}}</a>|{{!!soort}}|{{!!class}}| {{!!per}} | {{!!ton}}| {{!!l}}| {{!!b}}| {{!!d}}| {{!!hp}}| {{!!speed}}| {{!!man}}|{{!!extra}}|
|^Registratie|{{!!reg}}|<|<|<|<|<|<|<|<|<|<|
|Schepen in klasse |<|Foto's van |<|<|Informatie |<|<|<|<|<|<|h
|^<<listlinks "[list[!!ships]]">>|<|^<<listlinks "[list[!!ships]]+[search:text[slider]]">>|<|<|^{{!!info}}|<|<|<|<|<|<|
@@
\define slider(label,tiddler)
<$appear show="$label$ ▷" hide="$label$ ▽" $state="$tiddler$">
{{$tiddler$}}
</$appear>
\end
```
\define slider(label,tiddler)
<$appear show="$label$ ▷" hide="$label$ ▽" $state="$tiddler$">
{{$tiddler$}}
</$appear>
\end
```
```
Usage: <<slider "label" "tiddler">>
```
\define slider(label,tiddler)
<$appear show="$label$ ▷" hide="$label$ ▽" $state="$tiddler$">
<$button class="tc-btn-invisible">
<$action-navigate $to="$tiddler$" />
<$action-sendmessage $message="tm-edit-tiddler" $param="$tiddler$" />
{{$:/core/images/edit-button}}
</$button>
{{$tiddler$}}
</$appear>
\end
```
\define slider(label,tiddler)
<$appear show="$label$ ▷" hide="$label$ ▽" $state="$tiddler$">
<$button class="tc-btn-invisible">
<$action-navigate $to="$tiddler$" />
<$action-sendmessage $message="tm-edit-tiddler" $param="$tiddler$" />
{{$:/core/images/edit-button}}
</$button>
{{$tiddler$}}
</$appear>
\end
```
```
Usage: <<slider "label" "tiddler">>
```
|Tiddler |omschrijving |h
|Splash screen |bevat 'spinner'|
|Splash screen display:none |na laden wordt splash screen 'onderdrukt'|
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline
/*
Rules copied from Snow White
*/
.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {
<<transition "fill 150ms ease-in-out">>
}
.tc-tiddler-controls button.tc-selected svg {
<<filter "drop-shadow(0px -1px 2px rgba(0,0,0,0.25))">>
}
.tc-drop-down {
border-radius: 4px;
<<box-shadow "2px 2px 10px rgba(0, 0, 0, 0.5)">>
}
.tc-block-dropdown {
border-radius: 4px;
<<box-shadow "2px 2px 10px rgba(0, 0, 0, 0.5)">>
}
.tc-modal-displayed {
<<filter "blur(4px)">>
}
.tc-modal {
border-radius: 6px;
<<box-shadow "0 3px 7px rgba(0,0,0,0.3)">>
}
.tc-modal-footer {
border-radius: 0 0 6px 6px;
<<box-shadow "inset 0 1px 0 #fff">>;
}
.tc-alert {
border-radius: 6px;
<<box-shadow "0 3px 7px rgba(0,0,0,0.6)">>
}
.tc-notification {
border-radius: 6px;
<<box-shadow "0 3px 7px rgba(0,0,0,0.3)">>
text-shadow: 0 1px 0 rgba(255,255,255, 0.8);
}
.tc-message-box img {
<<box-shadow "1px 1px 3px rgba(0,0,0,0.5)">>
}
/*
Seamless modifications
*/
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
/* Drop the tiddler frame padding */
body.tc-body .tc-tiddler-frame {
padding: 0;
}
/* Move the sidebar up so that the title lines up */
body.tc-body .tc-sidebar-scrollable {
padding: 43px 0 28px 42px;
}
/* Stop the tiddler info panel from bleeding into the tiddler frame padding */
body.tc-body .tc-tiddler-info {
margin: 0;
}
/* Stop message boxes from bleeding into the tiddler frame padding */
body.tc-body .tc-message-box {
margin: 21px 0 21px 0;
}
}
/* Use the tiddler background colour for the page background */
html body.tc-body {
background-color: <<colour background>>;
}
html:-webkit-full-screen {
background-color: <<colour background>>;
}
/* Adjust the colour of the page controls */
body.tc-body .tc-page-controls svg {
fill: <<colour muted-foreground>>;
}
/* Adjust the colour of the sidebar selected tabs */
body.tc-body .tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {
background-color: <<colour background>>;
}
<pre>/* HIGHLIGHT COLOR STYLES */
/* uses overridden highlight button! */
.h {
background-color:Yellow;
}
/* uses overridden $:/language/Marklets/Highlight-cyan! */
.C {
background-color:Cyan;
}
/* added $:/language/Marklets/Highlight-light-cyan! */
.c {
background-color:LightCyan;
}
/* COLORS */
.black {
color: #000000;
}
.BLACK {
color: #000000;
font-weight: bold;
}
.red {
color: #FF0000;
}
.RED {
color: #FF0000;
font-weight: bold;
}
.brown {
color: #884411;
}
.BROWN {
color: #884411;
font-weight: bold;
}
.blue {
color: #006DEC;
}
.BLUE {
color: #006DEC;
font-weight: bold;
}
/* THREE COLUMN MODE */
.tgc-3columns {
display:block;
-moz-column-count:3;
-moz-column-gap:1em;
-webkit-column-count: 3;
-webkit-column-gap:1em;
}
/* STYLE FOR POPUP MACRO */
.tgc-popup {
background-color: #F4F4F4;
border: 2px solid gray;
border-radius: 0.4em;
-moz-border-radius: 0.4em;
-webkit-border-radius: 0.4em;
padding: 1px 10px;
}
/* STYLE FOR SLIDER MACRO */
.tgc-drop-down {
background-color: #E8E8E8;
border-radius: 0.4em;
-moz-border-radius: 0.4em;
-webkit-border-radius: 0.4em;
padding: 1px 10px;
}
/* TIDDLER FRAME without padding
tiddlers without box with rounded corners */
.tc-tiddler-frame {
background-color: #FEFEFE;
padding: 0px;
border-radius: 0em;
-moz-border-radius: 0em;
-webkit-border-radius: 0em;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
/* Background color the same as tiddler color */
html body.tc-body {
background-color: #FEFEFE;
}
/* BIG TEXT */
.big {
font-size: 1.3em;
}
/* COLOR OF NEW TIDDLER ICON IN TOOLBAR */
.tc-topbar button svg.tc-image-new-button {
fill: yellow;
}
.tc-topbar button:hover svg.tc-image-new-button,
.tc-topbar button a:hover svg.tc-image-new-button {
fill: #0044BB;
}
/* MODAL CSS */
/* Foto buttons in topmenu dichter bij elkaar */
/* html ervoor vereist */
html .tgc-foto-button button {
padding: 0px;
}
/* Achtergrond van modal */
.tc-modal-backdrop {
background-color: #333333;
}
/* Modal grootte */
@media (min-width: 55em) {
.tc-modal {
position: fixed;
top: 4em;
left: 0%;
width: 80%;
}
.tc-modal-body {
overflow-y: auto;
max-height: 800px;
}
}
/* Modal header */
.tc-modal-header {
padding: 9px 0px 0px 15px;
border-bottom: initial;
}
/* Modal footer */
.tc-modal-footer {
padding: 0px 0px 0px 15px;
margin-bottom: 0;
text-align: left;
background-color: #f5f5f5;
border-top: 1px solid #dddddd;
}
/* Trigger knop is eigenlijk een dummy knop */
.tgc-trigger-knop {
position: absolute;
top: 240px;
right: 16px;
}
.tgc-trigger-knop svg {
fill: #B9CCEC;
}
.tgc-trigger-knop:hover svg {
fill:#0044BB;
}
/* Sluitknop */
.tgc-sluit-knop {
position: absolute;
top: 30px;
right: 30px;
}
.tgc-sluit-knop svg {
fill: #B9CCEC;
}
.tgc-sluit-knop:hover svg {
fill:#0044BB;
}
/* MOUSEOVER STYLES */
.tgc-tooltip {
position: relative;
display: inline-block;
}
.tgc-tooltip:hover {
color: #0044BB;
text-decoration: underline;
}
.tgc-tooltip .tgc-tooltiptext {
opacity: 0;
transition: opacity 0.2s;
visibility: hidden;
text-align: left;
/* min-width: niet hier maar in scheepstypen bepaald per type! */
max-height:70vh;
overflow-y: auto;
/* Position the tooltip */
position: absolute;
z-index: 1;
bottom: 100%;
left: 50%;
margin-left: -30px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
background-color: #F4F4F4;
border: solid 2px #808080;
border-radius: 6px;
line-height: 22px;
overflow: hidden;
padding: 0px 15px;
}
.tgc-tooltip:hover .tgc-tooltiptext {
visibility: visible;
opacity: 1;
}
/* PADDING LEFT/RIGHT HIGHER THAN 0px */
@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-story-river {
position: relative;
padding: 10px 20px;
}
}
</pre>
<$list filter="[all[shadows+tiddlers]tags[]is[system]sort[title]]">
<$transclude tiddler="$:/core/ui/TagTemplate"/>
</$list>
<<tabs "
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
" "
[[]]
" "" "
">>
<$checkbox tiddler="$:/core/ui/EditTemplate/tags" tag="$:/tags/ViewTemplate"> Tagging in view mode</$checkbox>
||Foto's |Data |h
|!|!tags |!tags |
|''Oorlogsschip'' |`scheepsfoto`<br>`<soortschip>foto`<br>b.v. `duikbootfoto`|`schipdata`<br>`Soortschip`|
|''Watervliegtuig'' |`Watermerk`<br>`vliegtuigfoto`|^`wvliegtuigdata`|
|''Landvliegtuig'' |`Merk`<br>`vliegtuigfoto`|^`vliegtuigdata`|
!!! Alle niet-systeemlabels
{{$:/plugins/tg/toolbar/list-standard-tags}}
<hr>
!!! Data
Alle `xyzboten` hebben tag `schepen` en bevatten:
```
<<list-links "[tag[Xyzboot]]" "" "" "tgc-3columns">>
```
met caption `Xyzboten`
<hr>
!!! Fields bij foto's
Stel ca. 1939
* veld `jaar` 1939 (voor sorteren op jaar)
* veld `caption` Ca. 1939 (caption verschijnt als tekst in tab)
\define local(path:"./", height:"600px")
<iframe src="$path$" class="local-folder" style="height:$height$"/><style>
.local-folder {
width:100%;
height:$height$;
border:0;
</style>
\end
```
\define local(path:"./", height:"600px")
<iframe src="$path$" class="local-folder" style="height:$height$"/><style>
.local-folder {
width:100%;
height:$height$;
border:0;
</style>
\end
```
# Plaatjes:
#* `[img[Images/Dolfijn_1942.gif]]` werkt
#* `[img[Images/{{!!image}}` werkt niet
#* `<a href={{!!image}} target="blank"><$image source={{!!image}}/></a>` werkt
# url:
#* `[[Wikipedia|{{!!url1}}]]` werkt niet
#* `<a href={{!!url1}} target="_blank">Wikipedia</a>` werkt
#* `<a href={{!!url1}} target="_blank">{{!!url-i1}}</a>` werkt
* url1 = https://nl.wikipedia.org/wiki/Hr.Ms._Dolfijn_(1942)
* url-i1 = Wikipedia
|Template |Omschrijving |h
|$:/_ship_details_template|database-formulier|
|$:/_ship_template|layout voor database-formulier|
|$:/_plane_details_template|database-formulier|
|$:/_plane_template|layout voor database-formulier|
|$:/_pennantnummer_details_template|database-formulier ^^1^^|
|$:/_pennantnummer_template|layout voor database-formulier ^^1^^|
^^1^^ Zie ook [[Filter operator]]
!!! $:/_ship_details_template:
|veld |omschrijving|h
|b|breedte (m)|
|class|klasse/prototype|
|d|diepgang (m)|
|extra|Extra info, b.v. duikdiepte|
|hp|horse power (pk)|
|image|plaatje schip|
|image-w|lengte schip op schaal|
|info|b.v. `{{NI}}`|
|l|lengte (m)|
|man|bemanning (aantal)|
|per|dienstperiode|
|reg|registratie|
|ships|schepen in klasse|
|soort|type schip|
|speed|snelheid (knopen)|
|ton|tonnage|
|url-i1|url info1|
|url-i2|url info2|
|url1|bron info1|
|url2|bron info2|
Dit is een voorbeeld van een z.g. mouseover.<br>
Een mouseover toont extra tekst ''over'' de bestaande tekst heen zodra de muiscursor zich de link beweegt.<br>
Een mouseover heeft geen sluitknop; zodra de muiscursor buiten de link of het informatieblok is, verdwijnt het informatieblok weer.
<style>
html .tgc-tooltip .tgc-tooltiptext {
min-width: 640px;
}
</style>
Dit is een voorbeeld van een z.g. dropdown link, herkenbaar aan het symbool ▷ (''na'' de link).<br>
Een dropdown link toont extra tekst ''tussen'' de bestaande tekst; de verborgen tekst wordt 'uitgevouwen'.<br>
Een drop down link heeft geen sluitknop; door nogmaals op de 'drop down link' te klikken, verdwijnt het informatieblok weer.
> Let op het veranderen van het symbool van ▷ (normaal) naar ▽ ('uitgevouwen' tekst).
Dit is een voorbeeld van een standaard link (geopend in een nieuwe tab van de navigatiebalk).<br>Klik op de tab 'Hulp' in de navigatiebalk om terug te keren.
Dit is een voorbeeld van een z.g. popup, herkenbaar aan het symbool ▴ (''na'' de link).<br>
Een popup toont extra tekst ''over'' de bestaande tekst heen.<br>
Een popup heeft geen sluitknop; door nogmaals op de popup te klikken (of naast de popup te klikken), verdwijnt het informatieblok weer.
> Let op: het symbool ▴ verandert ''niet''.
<<tabs "
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
[[]]
" "
[[]]
" "" "
tc-vertical
">>
\define searchInField(field, for, ci)
<$list filter="[!is[shadow]!is[system]regexp:$field$[$for$$ci$]limit[1]]">
<dt>$field$</dt>
</$list>
<$list filter="[!is[shadow]!is[system]regexp:$field$[$for$$ci$]]">
<dd><$link><$view field="title"/></$link></dd>
</$list>
\end
<style>.tc-advanced-search-check input {width:auto !important;}</style>
Search in fields... <span class="tc-advanced-search-check"><$checkbox field="case-insensitive" tiddler="$:/temp/advancedsearch" checked="(?i)"> case insensitive</$checkbox></span>
<div class="tc-search">
<$edit-text tiddler="$:/temp/advancedsearch" type="search" tag="input"/> <$select field="field" tiddler="$:/temp/advancedsearch" default="">
<option value="">*any</option>
<$list filter="[!is[shadow]!is[system]fields[]sort[]]" variable="field">
<option value=<<field>>><<field>></option>
</$list>
</$select>
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
<$button class="tc-btn-invisible">
<$action-setfield $tiddler="$:/temp/advancedsearch" $field="text" $value=""/>
{{$:/core/images/close-button}}
</$button>
</$reveal>
</div>
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
<$reveal state="$:/temp/advancedsearch!!field" type="match" text="">
<dl>
<$list filter="[!is[shadow]!is[system]fields[]]" variable="field">
<$reveal type=nomatch text=text default=<<field>>>
<$macrocall $name="searchInField" field=<<field>> for={{$:/temp/advancedsearch}} ci={{$:/temp/advancedsearch!!case-insensitive}}/>
</$reveal>
</$list>
</dl>
</$reveal>
<$reveal state="$:/temp/advancedsearch!!field" type="nomatch" text="">
<dl>
<$macrocall $name="searchInField" field={{$:/temp/advancedsearch!!field}} for={{$:/temp/advancedsearch}} ci={{$:/temp/advancedsearch!!case-insensitive}}/>
</dl>
</$reveal>
</$reveal>
Built from branch 'tiddlywiki-com' at commit 90745f93a51922d83b05920d457bfb449908795f of https://github.com/Jermolene/TiddlyWiki5.git at 2019-09-12 09:36:13 UTC
{
"tiddlers": {
"$:/Acknowledgements": {
"title": "$:/Acknowledgements",
"text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
},
"$:/core/copyright.txt": {
"title": "$:/core/copyright.txt",
"type": "text/plain",
"text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2020, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
},
"$:/core/icon": {
"title": "$:/core/icon",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
},
"$:/core/images/add-comment": {
"title": "$:/core/images/add-comment",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"
},
"$:/core/images/advanced-search-button": {
"title": "$:/core/images/advanced-search-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
},
"$:/core/images/auto-height": {
"title": "$:/core/images/auto-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/blank": {
"title": "$:/core/images/blank",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
},
"$:/core/images/bold": {
"title": "$:/core/images/bold",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
},
"$:/core/images/cancel-button": {
"title": "$:/core/images/cancel-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
},
"$:/core/images/chevron-down": {
"title": "$:/core/images/chevron-down",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
},
"$:/core/images/chevron-left": {
"title": "$:/core/images/chevron-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
},
"$:/core/images/chevron-right": {
"title": "$:/core/images/chevron-right",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
},
"$:/core/images/chevron-up": {
"title": "$:/core/images/chevron-up",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
},
"$:/core/images/clone-button": {
"title": "$:/core/images/clone-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
},
"$:/core/images/close-all-button": {
"title": "$:/core/images/close-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
},
"$:/core/images/close-button": {
"title": "$:/core/images/close-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
},
"$:/core/images/close-others-button": {
"title": "$:/core/images/close-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
},
"$:/core/images/copy-clipboard": {
"title": "$:/core/images/copy-clipboard",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
},
"$:/core/images/delete-button": {
"title": "$:/core/images/delete-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
},
"$:/core/images/done-button": {
"title": "$:/core/images/done-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
},
"$:/core/images/down-arrow": {
"title": "$:/core/images/down-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
},
"$:/core/images/download-button": {
"title": "$:/core/images/download-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
},
"$:/core/images/edit-button": {
"title": "$:/core/images/edit-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
},
"$:/core/images/erase": {
"title": "$:/core/images/erase",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
},
"$:/core/images/excise": {
"title": "$:/core/images/excise",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
},
"$:/core/images/export-button": {
"title": "$:/core/images/export-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
},
"$:/core/images/file": {
"title": "$:/core/images/file",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
},
"$:/core/images/fixed-height": {
"title": "$:/core/images/fixed-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/fold-all-button": {
"title": "$:/core/images/fold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
},
"$:/core/images/fold-button": {
"title": "$:/core/images/fold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
},
"$:/core/images/fold-others-button": {
"title": "$:/core/images/fold-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/folder": {
"title": "$:/core/images/folder",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
},
"$:/core/images/full-screen-button": {
"title": "$:/core/images/full-screen-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
},
"$:/core/images/github": {
"title": "$:/core/images/github",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
},
"$:/core/images/gitter": {
"title": "$:/core/images/gitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
},
"$:/core/images/globe": {
"title": "$:/core/images/globe",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
},
"$:/core/images/heading-1": {
"title": "$:/core/images/heading-1",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
},
"$:/core/images/heading-2": {
"title": "$:/core/images/heading-2",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
},
"$:/core/images/heading-3": {
"title": "$:/core/images/heading-3",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
},
"$:/core/images/heading-4": {
"title": "$:/core/images/heading-4",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
},
"$:/core/images/heading-5": {
"title": "$:/core/images/heading-5",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
},
"$:/core/images/heading-6": {
"title": "$:/core/images/heading-6",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
},
"$:/core/images/help": {
"title": "$:/core/images/help",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
},
"$:/core/images/home-button": {
"title": "$:/core/images/home-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
},
"$:/core/images/import-button": {
"title": "$:/core/images/import-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
},
"$:/core/images/info-button": {
"title": "$:/core/images/info-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
},
"$:/core/images/italic": {
"title": "$:/core/images/italic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
},
"$:/core/images/left-arrow": {
"title": "$:/core/images/left-arrow",
"created": "20150315234410875",
"modified": "20150315235324760",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
},
"$:/core/images/line-width": {
"title": "$:/core/images/line-width",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
},
"$:/core/images/link": {
"title": "$:/core/images/link",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
},
"$:/core/images/linkify": {
"title": "$:/core/images/linkify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"
},
"$:/core/images/list-bullet": {
"title": "$:/core/images/list-bullet",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
},
"$:/core/images/list-number": {
"title": "$:/core/images/list-number",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
},
"$:/core/images/list": {
"title": "$:/core/images/list",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
},
"$:/core/images/locked-padlock": {
"title": "$:/core/images/locked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/mail": {
"title": "$:/core/images/mail",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
},
"$:/core/images/menu-button": {
"title": "$:/core/images/menu-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
},
"$:/core/images/mono-block": {
"title": "$:/core/images/mono-block",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
},
"$:/core/images/mono-line": {
"title": "$:/core/images/mono-line",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
},
"$:/core/images/new-button": {
"title": "$:/core/images/new-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
},
"$:/core/images/new-here-button": {
"title": "$:/core/images/new-here-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
},
"$:/core/images/new-image-button": {
"title": "$:/core/images/new-image-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
},
"$:/core/images/new-journal-button": {
"title": "$:/core/images/new-journal-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
},
"$:/core/images/opacity": {
"title": "$:/core/images/opacity",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
},
"$:/core/images/open-window": {
"title": "$:/core/images/open-window",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
},
"$:/core/images/options-button": {
"title": "$:/core/images/options-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
},
"$:/core/images/paint": {
"title": "$:/core/images/paint",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
},
"$:/core/images/palette": {
"title": "$:/core/images/palette",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
},
"$:/core/images/permalink-button": {
"title": "$:/core/images/permalink-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
},
"$:/core/images/permaview-button": {
"title": "$:/core/images/permaview-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
},
"$:/core/images/picture": {
"title": "$:/core/images/picture",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"
},
"$:/core/images/plugin-generic-language": {
"title": "$:/core/images/plugin-generic-language",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-plugin": {
"title": "$:/core/images/plugin-generic-plugin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-theme": {
"title": "$:/core/images/plugin-generic-theme",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
},
"$:/core/images/preview-closed": {
"title": "$:/core/images/preview-closed",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
},
"$:/core/images/preview-open": {
"title": "$:/core/images/preview-open",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
},
"$:/core/images/print-button": {
"title": "$:/core/images/print-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
},
"$:/core/images/quote": {
"title": "$:/core/images/quote",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
},
"$:/core/images/refresh-button": {
"title": "$:/core/images/refresh-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
},
"$:/core/images/right-arrow": {
"title": "$:/core/images/right-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
},
"$:/core/images/rotate-left": {
"title": "$:/core/images/rotate-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
},
"$:/core/images/save-button": {
"title": "$:/core/images/save-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
},
"$:/core/images/size": {
"title": "$:/core/images/size",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
},
"$:/core/images/spiral": {
"title": "$:/core/images/spiral",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"
},
"$:/core/images/stamp": {
"title": "$:/core/images/stamp",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
},
"$:/core/images/star-filled": {
"title": "$:/core/images/star-filled",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
},
"$:/core/images/storyview-classic": {
"title": "$:/core/images/storyview-classic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-pop": {
"title": "$:/core/images/storyview-pop",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-zoomin": {
"title": "$:/core/images/storyview-zoomin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
},
"$:/core/images/strikethrough": {
"title": "$:/core/images/strikethrough",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
},
"$:/core/images/subscript": {
"title": "$:/core/images/subscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/superscript": {
"title": "$:/core/images/superscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/tag-button": {
"title": "$:/core/images/tag-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
},
"$:/core/images/theme-button": {
"title": "$:/core/images/theme-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
},
"$:/core/images/timestamp-off": {
"title": "$:/core/images/timestamp-off",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"
},
"$:/core/images/timestamp-on": {
"title": "$:/core/images/timestamp-on",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"
},
"$:/core/images/tip": {
"title": "$:/core/images/tip",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
},
"$:/core/images/transcludify": {
"title": "$:/core/images/transcludify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
},
"$:/core/images/twitter": {
"title": "$:/core/images/twitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
},
"$:/core/images/underline": {
"title": "$:/core/images/underline",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
},
"$:/core/images/unfold-all-button": {
"title": "$:/core/images/unfold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unfold-button": {
"title": "$:/core/images/unfold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unlocked-padlock": {
"title": "$:/core/images/unlocked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/up-arrow": {
"title": "$:/core/images/up-arrow",
"created": "20150316000544368",
"modified": "20150316000831867",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
},
"$:/core/images/video": {
"title": "$:/core/images/video",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
},
"$:/core/images/warning": {
"title": "$:/core/images/warning",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"
},
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "advanced search"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Advanced search"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "cancel"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Discard changes to this tiddler"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "clone"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Clone this tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "close"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Close this tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "close all"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Close all tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "close others"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Close other tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "control panel"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Open control panel"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "copy to clipboard"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Copy this text to the clipboard"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Delete this tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "edit"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Edit this tiddler"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "encryption"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Set or clear a password for saving this wiki"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "clear password"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Clear the password and save this wiki without encryption"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "set password"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Set a password for saving this wiki with encryption"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "export all"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Export all tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "export tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Export tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "export tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Export tiddlers"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Select the sidebar search field"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "fold tiddler"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Fold the body of this tiddler"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "fold-bar"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Optional bars to fold and unfold tiddlers"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "unfold tiddler"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Unfold the body of this tiddler"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "fold other tiddlers"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Fold the bodies of other opened tiddlers"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "fold all tiddlers"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Fold the bodies of all opened tiddlers"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "unfold all tiddlers"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Unfold the bodies of all opened tiddlers"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "full-screen"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Enter or leave full-screen mode"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "help"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Show help panel"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "import"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Import many types of file including text, image, TiddlyWiki or JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "info"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Show information for this tiddler"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "home"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Open the default tiddlers"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "language"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Choose the user interface language"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "tiddler manager"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "Open tiddler manager"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "more"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "More actions"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "new here"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Create a new tiddler tagged with this one"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "new journal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Create a new journal tiddler"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "new journal here"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Create a new journal tiddler tagged with this one"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "new image"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Create a new image tiddler"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "new Markdown tiddler"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Create a new Markdown tiddler"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "new tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Create a new tiddler"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "open in new window"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Open tiddler in new window"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palette"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Choose the colour palette"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Set browser address bar to a direct link to this tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Set browser address bar to a direct link to all the tiddlers in this story"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "print page"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Print the current page"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "refresh"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Perform a full refresh of the wiki"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "ok"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Confirm changes to this tiddler"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "save changes"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Save changes"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "storyview"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Choose the story visualisation"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "hide sidebar"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Hide sidebar"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "show sidebar"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Show sidebar"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "tag manager"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Open tag manager"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "timestamps"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Choose whether modifications update timestamps"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "timestamps are on"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "Update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "timestamps are off"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "Don't update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "theme"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Choose the display theme"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "bold"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Apply bold formatting to selection"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "clear"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Clear image to solid colour"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "editor height"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Automatically adjust height to fit content"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Fixed height:"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Choose the height of the text editor"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "excise"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Perform excision"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Macro name:"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Title of new tiddler:"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Replace excised text with:"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "macro"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "link"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusion"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Tag new tiddler with the title of this tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Warning: tiddler already exists"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Excise the selected text into a new tiddler"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "heading 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Apply heading level 1 formatting to lines containing selection"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "heading 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Apply heading level 2 formatting to lines containing selection"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "heading 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Apply heading level 3 formatting to lines containing selection"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "heading 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Apply heading level 4 formatting to lines containing selection"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "heading 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Apply heading level 5 formatting to lines containing selection"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "heading 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Apply heading level 6 formatting to lines containing selection"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "italic"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Apply italic formatting to selection"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "line width"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Set line width for painting"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "link"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Create wikitext link"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "wikilink"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Wrap selection in square brackets"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "bulleted list"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Apply bulleted list formatting to lines containing selection"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "numbered list"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Apply numbered list formatting to lines containing selection"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "monospaced block"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Apply monospaced block formatting to lines containing selection"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "monospaced"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Apply monospaced character formatting to selection"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "opacity"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Set painting opacity"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "paint colour"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Set painting colour"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "picture"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Insert picture"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "preview"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Show preview pane"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "preview type"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Choose preview type"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "quote"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Apply quoted text formatting to lines containing selection"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "rotate left"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Rotate image left by 90 degrees"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "image size"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Height:"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Resize image"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Width:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Set image size"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "stamp"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Add your own"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Insert a preconfigured snippet of text"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Name as shown in menu"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "strikethrough"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Apply strikethrough formatting to selection"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "subscript"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Apply subscript formatting to selection"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "superscript"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Apply superscript formatting to selection"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "Toggle the sidebar visibility"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusion"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Wrap selection in curly brackets"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "underline"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Apply underline formatting to selection"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Advanced"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Internal information about this TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Appearance"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Ways to customise the appearance of your TiddlyWiki."
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Animation duration"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Default focus field for new tiddlers"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Basics"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Default tiddlers"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Choose which tiddlers are displayed at startup"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Hello! Current language:"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Title of new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Text for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Tags for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Title of new tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Tags for new tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Number of overridden shadow tiddlers"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "Number of shadow tiddlers"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "Subtitle"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "Number of system tiddlers"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "Number of tags"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "Number of tiddlers"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "Title of this ~TiddlyWiki"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "Username for signing edits"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "~TiddlyWiki version"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "Editor Types"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "Editor"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "These tiddlers determine which editor is used to edit specific tiddler types."
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "Type"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "Info"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "Information about this TiddlyWiki"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "Type shortcut here"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "add shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "Keyboard Shortcuts"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "Manage keyboard shortcut assignments"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "No keyboard shortcuts assigned"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "remove keyboard shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "All platforms"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "Macintosh platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "Non-Macintosh platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "Linux platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "Non-Linux platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "Windows platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "Non-Windows platforms only"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "Loaded Modules"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "Palette"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "clone"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "It is recommended that you clone this shadow palette before editing it"
},
"$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "delete this entry from the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Show color names that are not part of the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "This shadow palette has been modified"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Editing"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "reset"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "hide editor"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Current palette:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "show editor"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "Parsing"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "Block Parse Rules"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "Inline Parse Rules"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "Pragma Parse Rules"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Get more plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Install plugins from the official library"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Also requires:"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "disable"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Disable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(disabled)"
},
"$:/language/ControlPanel/Plugins/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "downgrade"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "None"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "enable"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Enable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "install"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Currently installed plugins:"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Languages"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Language pack plugins"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "This plugin is not currently installed"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "open plugin library"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "close plugin library"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(requires reload)"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "reinstall"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Themes"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Theme plugins"
},
"$:/language/ControlPanel/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "update"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "Updates"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "Available updates to installed plugins"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "Update <<update-count>> plugins"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "With <<count>> sub-plugins available"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Saving"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Permit automatic saving for the download saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Enable Autosave for Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "These settings apply to the HTML5-compatible download saver"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "General"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "These settings apply to all the loaded savers"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Target branch for saving"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Saved by TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "These settings are only used when saving to <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Filename of target file (e.g. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Path to target file (e.g. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "Server API URL"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Username"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "~GitHub Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Gitea Saver"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Advanced Settings"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Backup Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Backups"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "~TiddlySpot Saver"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Upload Filename"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Password"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "Server URL"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Upload Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Wiki Name"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Autosave"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Do not save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Attempt to automatically save changes during editing when using a supporting saver"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "Camel Case Wiki Links"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Enable automatic ~CamelCase linking"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Settings"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Enable or disable the editor toolbar:"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Show editor toolbar"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Tiddler Info Panel Mode"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Control when the tiddler info panel closes:"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Tiddler info panel closes automatically"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Tiddler info panel stays open until explicitly closed"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "These settings let you customise the behaviour of TiddlyWiki."
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Navigation Address Bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Behaviour of the browser address bar when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Do not update the address bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Include the target tiddler"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Include the target tiddler and the current story sequence"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Navigation History"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Update browser history when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Do not update history"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Update history"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "Permalink/permaview Mode"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "Choose how permalink/permaview is handled:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "Copy permalink/permaview URL to clipboard"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "Update address bar with permalink/permaview URL"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Performance Instrumentation"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Enable performance instrumentation"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Toolbar Button Style"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Choose the style for toolbar buttons:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Borderless"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Boxed"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Rounded"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Toolbar Buttons"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Default toolbar button appearance:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Include icon"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Include text"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Default Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Specify which sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Default More Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Specify which More sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Tiddler Opening Behaviour"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigation from //within// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigation from //outside// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Open above the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Open below the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Open at the top of the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Open at the bottom of the story river"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Tiddler Titles"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Optionally display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Do not display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Wiki Links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Choose whether to link to tiddlers that do not exist yet"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Enable links to missing tiddlers"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "Story View"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Current view:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Stylesheets"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Expand All"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Restore"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Theme"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Current theme:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Tiddler Fields"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Toolbars"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Edit Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Select which toolbar buttons are displayed"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Page Toolbar"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "View Toolbar"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Download full wiki"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": "st"
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": "nd"
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": "rd"
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": "th"
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": "th"
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": "th"
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": "th"
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": "th"
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": "th"
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": "th"
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": "th"
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": "th"
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": "th"
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": "th"
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": "th"
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": "th"
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": "th"
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": "th"
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": "th"
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": "th"
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": "st"
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": "nd"
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": "rd"
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": "th"
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": "th"
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": "th"
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": "th"
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": "th"
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": "th"
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": "th"
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": "st"
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "Sunday"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "Monday"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "Tuesday"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "Wednesday"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "Thursday"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "Friday"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "Saturday"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "January"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "February"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "March"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "April"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "May"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "June"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "July"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "August"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "September"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "October"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "November"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "December"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "Sun"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "Mon"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "Tue"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "Wed"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "Thu"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "Fri"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "Sat"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "Jan"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "Feb"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "Mar"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "Apr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "May"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "Jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "Jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "Aug"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "Sep"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "Oct"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "Nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "Dec"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> days from now"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> hours from now"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> minutes from now"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> months from now"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 second from now"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> seconds from now"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> years from now"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> days ago"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> hours ago"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> minutes ago"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> months ago"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 second ago"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> seconds ago"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> years ago"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "A sub-operator for the ''all'' filter operator."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animations that may be used with the RevealWidget."
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "Defines how requests are authenticated by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "A bitmap editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commands that can be executed under Node.js."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Data to be inserted into `$tw.config`."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Individual filter operator methods."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Global data to be inserted into `$tw`."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Operands for the ''is'' filter operator."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Generic module type for general purpose JavaScript modules."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript macro definitions."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "Parsers for different content types."
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "Defines how individual URL patterns are handled by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "Savers handle different methods for saving files from the browser."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Startup functions."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "Story views customise the animation and behaviour of list widgets."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "A text editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Converts different content types into tiddlers."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Defines the behaviour of an individual tiddler field."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Adds methods to the `$tw.Tiddler` prototype."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Applies upgrade processing to tiddlers during an upgrade/import."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Adds methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Adds Node.js-specific methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "Widgets encapsulate DOM rendering and refreshing."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Adds methods to `$tw.Wiki`."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Individual parser rules for the main WikiText parser."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Alert background"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Alert border"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Alert highlight"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Alert muted foreground"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "General background"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Blockquote bar"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Default button background"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Default button border"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Default button foreground"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Unsaved changes indicator"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Code background"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Code border"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Code foreground"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Download button background"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Download button foreground"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Dragger background"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Dragger foreground"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Dropdown background"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Dropdown border"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Dropdown tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Dropdown tab background"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Dropzone background"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "External link background hover"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "External link background visited"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "External link background"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "External link foreground hover"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "External link foreground visited"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "External link foreground"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "General foreground"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Menu bar background"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Menu bar foreground"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Message box background"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Message box border"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Message box foreground"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Modal backdrop"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Modal background"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Modal border"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Modal footer background"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Modal footer border"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Modal header border"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "General muted foreground"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Notification background"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Notification border"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Page background"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Preformatted code background"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Preformatted code border"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "General primary"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "`<select>` element background"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "`<select>` element text"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Sidebar button foreground"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Sidebar controls foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Sidebar controls foreground"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Sidebar foreground shadow"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Sidebar foreground"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Sidebar muted foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Sidebar muted foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Sidebar tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Sidebar tab background"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Sidebar tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Sidebar tab border"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Sidebar tab divider"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Sidebar tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Sidebar tab foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Sidebar tiddler link foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Sidebar tiddler link foreground"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Site title foreground"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Static alert foreground"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Tab background"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Tab border"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Tab divider"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Tab foreground"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Table border"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Table footer background"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Table header background"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Tag background"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Tag foreground"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Tiddler background"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Tiddler border"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Tiddler controls foreground hover"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Tiddler controls foreground for selected controls"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Tiddler controls foreground"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Tiddler editor background"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Tiddler editor border image"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Tiddler editor border"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Tiddler editor background for even fields"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Tiddler editor background for odd fields"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Tiddler info panel background"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Tiddler info panel border"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Tiddler info panel tab background"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Tiddler link background"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Tiddler link foreground"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Tiddler subtitle foreground"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Tiddler title foreground"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Toolbar 'new tiddler' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Toolbar 'options' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Toolbar 'save' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Toolbar 'info' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Toolbar 'edit' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Toolbar 'close' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Toolbar 'delete' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Toolbar 'cancel' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Toolbar 'done' button foreground"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Untagged pill background"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Very muted foreground"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Type the text for this tiddler"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "output"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "remove field"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Remove field"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "field list"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Show field list"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Add the new field to the tiddler"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "field name"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Add a new field:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "field value"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "System fields"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "User fields"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "add tag"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "tag name"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "tag list"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Show tag list"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Target tiddler already exists"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following references to this tiddler will not be automatically updated:"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "content type list"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Show content type list"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "delete content type"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Delete content type"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "content type"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type:"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "Static HTML"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON file"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV file"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "\".tid\" file"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "The full URI of an external image tiddler"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "The name of the bag from which a tiddler came"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "The text to be displayed on a tab or button"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "The CSS color value associated with a tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "The date a tiddler was created"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "The name of the person who created a tiddler"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "For a plugin, lists the dependent plugin titles"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "The descriptive text for a plugin, or a modal dialogue"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "For draft tiddlers, contains the proposed new title of the tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "The footer text for a wizard"
},
"$:/language/Docs/Fields/hide-body": {
"title": "$:/language/Docs/Fields/hide-body",
"text": "The view template will hide bodies of tiddlers if set to: ''yes''"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "The title of the tiddler containing the icon associated with a tiddler"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "An ordered list of tiddler titles associated with a tiddler"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "The date and time at which a tiddler was last modified"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "The tiddler title associated with the person who last modified a tiddler"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "The human readable name associated with a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "A numerical value indicating the priority of a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "The type of plugin in a plugin tiddler"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "The revision of the tiddler held at the server"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Date of a TiddlyWiki release"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "The source URL associated with a tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "The subtitle text for a wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "A list of tags associated with a tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "The body text of a tiddler"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "If present, throttles refreshes of this tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "The unique name of a tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "The content type of a tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "Version information for a plugin"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "If present, indicates that the tiddler text field must be loaded from the server"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "All tiddlers except system tiddlers"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Recently modified tiddlers, including system tiddlers"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Recently modified tiddlers"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "All tags except system tags"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Missing tiddlers"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Draft tiddlers"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Orphan tiddlers"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "System tiddlers"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Shadow tiddlers"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Overridden shadow tiddlers"
},
"$:/language/Filters/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "Tiddlers modified since the wiki was loaded"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "System tags"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Non wiki-text tiddlers"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Automatically run configured commands",
"text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Clear a password for subsequent crypto operations",
"text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Deletes a group of tiddlers",
"text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Lists the available editions of TiddlyWiki",
"text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "Fetch tiddlers from wiki by URL",
"text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Display help for TiddlyWiki commands",
"text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Import tiddlers from a file",
"text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialise a new wiki folder",
"text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "Provides an HTTP server interface to TiddlyWiki",
"text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Load tiddlers from a file",
"text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Construct library plugin required by upgrade process",
"text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "No such help item"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Set the base output directory for subsequent commands",
"text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Set a password for subsequent crypto operations",
"text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Renders individual tiddlers to files",
"text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Render an individual tiddler as a specified ContentType",
"text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Render tiddlers matching a filter to a specified ContentType",
"text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Saves individual raw tiddlers to files",
"text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Saves a raw tiddler to a file",
"text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Saves a group of raw tiddlers to a directory",
"text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Saves a wiki to a new wiki folder",
"text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)",
"text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Prepares external tiddlers for use",
"text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Unpack the payload tiddlers from a plugin",
"text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Triggers verbose output mode",
"text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Displays the version number of TiddlyWiki",
"text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "The following tiddlers were imported:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Cancel"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "These tiddlers are ready to import:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Import"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Select"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Status"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Title"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Preview:"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Text"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Text (Raw)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Fields"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Diff"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Diff (Fields)"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "Blocked incompatible or obsolete plugin"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)"
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "Upgraded plugin from <<incoming>> to <<upgraded>>"
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "Blocked temporary state tiddler"
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "Blocked system tiddler"
},
"$:/language/Import/Upgrader/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "Core module tiddler"
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable"
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Migrated theme tweak from <$text text=<<from>>/>"
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "This tiddler contains binary data"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "upgrade"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "close all"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "Recent:"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "count"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "New Tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> differences"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "Drop here (or use the 'Escape' key to cancel)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Cancel"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Set a new password for this TiddlyWiki"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Username"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Password"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Repeat password"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Passwords do not match"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Set password"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Error"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "File changed on server"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Filter error"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Syntax error in filter expression"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "Filter Error: Unknown operand for the 'is' filter operator"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "Error loading plugin library"
},
"$:/language/Error/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Recursive transclusion error in transclude widget"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Error retrieving skinny tiddler list"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Error saving to TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Error while saving"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest error code"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Internal JavaScript Error"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Login to TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(none)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filter by tag:"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Reverse order"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Search"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Search:"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "tags"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "tiddlers"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Show:"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Sort by:"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Colour"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Fields"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(none)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Icon"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Raw text"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Tags"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Tools"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Wikified text"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "No"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Official ~TiddlyWiki Plugin Library"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DDth MMM YYYY"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "This is a system tiddler"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Include system tiddlers"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Colour"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Count"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Icon"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "None"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Tag"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DDth MMM YYYY at hh12:0mmam"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "You have unsaved changes in TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Yes"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "DDth MMM YYYY"
},
"$:/config/NewJournal/Text": {
"title": "$:/config/NewJournal/Text",
"text": ""
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"tags": "Journal"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "Saved wiki"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "Starting to save wiki"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Copied to clipboard!"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "Failed to copy to clipboard!"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "List"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filter"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "All matches:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Title matches:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Search"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Search text too short"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Shadows"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Search for shadow tiddlers"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Search for standard tiddlers"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "System"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Search for system tiddlers"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "All"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Contents"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Drafts"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Explorer"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Missing"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "More"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Open"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Orphans"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Recent"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Shadows"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "System"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Tags"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "untagged"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Tools"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "a non-linear personal web notebook"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "My ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "List of tiddlers by tag",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Macro definition",
"text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table with 4 columns by 3 rows",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table of Contents",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Theme Tweaks"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "You can tweak certain aspects of the ''Vanilla'' theme."
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Options"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Sidebar layout"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "Fixed story, fluid sidebar"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "Fluid story, fixed sidebar"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Sticky titles"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Causes tiddler titles to \"stick\" to the top of the browser window"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Wrap long lines in code blocks"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Settings"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Font family"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Code font family"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Editor font family"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Page background image"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Page background image attachment"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "Scroll with tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Fixed to window"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Page background image size"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "Auto"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "Cover"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "Contain"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Sizes"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Font size"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Line height"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Font size for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Line height for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Story left position"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Story top position"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "how far the top margin of the story river<br>is from the top of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Story right"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "how far the left margin of the sidebar <br>is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Story width"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "the overall width of the story river"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Tiddler width"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "within the story river"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Sidebar breakpoint"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Sidebar width"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "the width of the sidebar in fluid-fixed layout"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Advanced"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "none"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Plugin Details"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "This plugin contains the following shadow tiddlers:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Shadow Status"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "It is overridden by an ordinary tiddler"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Fields"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "List"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "This tiddler does not have a list"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Listed"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "This tiddler is not listed by any others"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "References"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "No tiddlers link to this one"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "Tagging"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "No tiddlers are tagged with this one"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "Tools"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "JavaScript code",
"name": "application/javascript",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON data",
"name": "application/json",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Data dictionary",
"name": "application/x-tiddler-dictionary",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF image",
"name": "image/gif",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG image",
"name": "image/jpeg",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG image",
"name": "image/png",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Structured Vector Graphics image",
"name": "image/svg+xml",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "ICO format icon file",
"name": "image/x-icon",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Static stylesheet",
"name": "text/css",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML markup",
"name": "text/html",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Plain text",
"name": "text/plain",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/languages/en-GB/icon": {
"title": "$:/languages/en-GB/icon",
"type": "image/svg+xml",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
},
"$:/languages/en-GB": {
"title": "$:/languages/en-GB",
"name": "en-GB",
"description": "English (British)",
"author": "JeremyRuston",
"core-version": ">=5.0.0\"",
"text": "Stub pseudo-plugin for the default language"
},
"$:/core/modules/commander.js": {
"title": "$:/core/modules/commander.js",
"text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/commands/build.js": {
"title": "$:/core/modules/commands/build.js",
"text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/clearpassword.js": {
"title": "$:/core/modules/commands/clearpassword.js",
"text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/deletetiddlers.js": {
"title": "$:/core/modules/commands/deletetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/editions.js": {
"title": "$:/core/modules/commands/editions.js",
"text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/fetch.js": {
"title": "$:/core/modules/commands/fetch.js",
"text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t \tdata = [];\n\t self.commander.write(\"Reading \" + url + \": \");\n\t response.on(\"data\",function(chunk) {\n\t data.push(chunk);\n\t self.commander.write(\".\");\n\t });\n\t response.on(\"end\",function() {\n\t self.commander.write(\"\\n\");\n\t if(response.statusCode === 200) {\n\t\t self.processBody(Buffer.concat(data),type,options,url);\n\t\t callback(null);\n\t } else {\n\t \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t \t} else {\n\t\t \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t \t\t\n\t \t}\n\t }\n\t \t});\n\t \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/help.js": {
"title": "$:/core/modules/commands/help.js",
"text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/import.js": {
"title": "$:/core/modules/commands/import.js",
"text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/init.js": {
"title": "$:/core/modules/commands/init.js",
"text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/listen.js": {
"title": "$:/core/modules/commands/listen.js",
"text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/load.js": {
"title": "$:/core/modules/commands/load.js",
"text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count && self.params[1] !== \"noerror\") {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/makelibrary.js": {
"title": "$:/core/modules/commands/makelibrary.js",
"text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers})\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/output.js": {
"title": "$:/core/modules/commands/output.js",
"text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/password.js": {
"title": "$:/core/modules/commands/password.js",
"text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/render.js": {
"title": "$:/core/modules/commands/render.js",
"text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddler.js": {
"title": "$:/core/modules/commands/rendertiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddlers.js": {
"title": "$:/core/modules/commands/rendertiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/save.js": {
"title": "$:/core/modules/commands/save.js",
"text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savelibrarytiddlers.js": {
"title": "$:/core/modules/commands/savelibrarytiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\tdoesRequireReload = !!$tw.wiki.doesPluginInfoRequireReload(pluginTiddlers),\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddler.js": {
"title": "$:/core/modules/commands/savetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddlers.js": {
"title": "$:/core/modules/commands/savetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savewikifolder.js": {
"title": "$:/core/modules/commands/savewikifolder.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\n}\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type] || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki\n\t});\n\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/server.js": {
"title": "$:/core/modules/commands/server.js",
"text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/setfield.js": {
"title": "$:/core/modules/commands/setfield.js",
"text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/unpackplugin.js": {
"title": "$:/core/modules/commands/unpackplugin.js",
"text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/verbose.js": {
"title": "$:/core/modules/commands/verbose.js",
"text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/version.js": {
"title": "$:/core/modules/commands/version.js",
"text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/config.js": {
"title": "$:/core/modules/config.js",
"text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
"type": "application/javascript",
"module-type": "config"
},
"$:/core/modules/deserializers.js": {
"title": "$:/core/modules/deserializers.js",
"text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/core/modules/editor/engines/framed.js": {
"title": "$:/core/modules/editor/engines/framed.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\tthis.domNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/engines/simple.js": {
"title": "$:/core/modules/editor/engines/simple.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/factory.js": {
"title": "$:/core/modules/editor/factory.js",
"text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag) || \"input\";\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/operations/bitmap/clear.js": {
"title": "$:/core/modules/editor/operations/bitmap/clear.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/resize.js": {
"title": "$:/core/modules/editor/operations/bitmap/resize.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/rotate-left.js": {
"title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/text/excise.js": {
"title": "$:/core/modules/editor/operations/text/excise.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/make-link.js": {
"title": "$:/core/modules/editor/operations/text/make-link.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/prefix-lines.js": {
"title": "$:/core/modules/editor/operations/text/prefix-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,targetCount);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== targetCount) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-all.js": {
"title": "$:/core/modules/editor/operations/text/replace-all.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-selection.js": {
"title": "$:/core/modules/editor/operations/text/replace-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/save-selection.js": {
"title": "$:/core/modules/editor/operations/text/save-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-lines.js": {
"title": "$:/core/modules/editor/operations/text/wrap-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-selection.js": {
"title": "$:/core/modules/editor/operations/text/wrap-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/filters/addprefix.js": {
"title": "$:/core/modules/filters/addprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/addsuffix.js": {
"title": "$:/core/modules/filters/addsuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/after.js": {
"title": "$:/core/modules/filters/after.js",
"text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/all/current.js": {
"title": "$:/core/modules/filters/all/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/missing.js": {
"title": "$:/core/modules/filters/all/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/orphans.js": {
"title": "$:/core/modules/filters/all/orphans.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/shadows.js": {
"title": "$:/core/modules/filters/all/shadows.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tags.js": {
"title": "$:/core/modules/filters/all/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tiddlers.js": {
"title": "$:/core/modules/filters/all/tiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all.js": {
"title": "$:/core/modules/filters/all.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/backlinks.js": {
"title": "$:/core/modules/filters/backlinks.js",
"text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/before.js": {
"title": "$:/core/modules/filters/before.js",
"text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/commands.js": {
"title": "$:/core/modules/filters/commands.js",
"text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/compare.js": {
"title": "$:/core/modules/filters/compare.js",
"text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = types[type] || types.number,\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar types = {\n\t\"number\": function(a,b) {\n\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t},\n\t\"integer\": function(a,b) {\n\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t},\n\t\"string\": function(a,b) {\n\t\treturn compare(\"\" + a,\"\" +b);\n\t},\n\t\"date\": function(a,b) {\n\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\tdateB = $tw.utils.parseDate(b);\n\t\tif(!isFinite(dateA)) {\n\t\t\tdateA = new Date(0);\n\t\t}\n\t\tif(!isFinite(dateB)) {\n\t\t\tdateB = new Date(0);\n\t\t}\n\t\treturn compare(dateA,dateB);\n\t},\n\t\"version\": function(a,b) {\n\t\treturn $tw.utils.compareVersions(a,b);\n\t}\n};\n\nfunction compare(a,b) {\n\tif(a > b) {\n\t\treturn +1;\n\t} else if(a < b) {\n\t\treturn -1;\n\t} else {\n\t\treturn 0;\n\t}\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/contains.js": {
"title": "$:/core/modules/filters/contains.js",
"text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/count.js": {
"title": "$:/core/modules/filters/count.js",
"text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/days.js": {
"title": "$:/core/modules/filters/days.js",
"text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/each.js": {
"title": "$:/core/modules/filters/each.js",
"text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/eachday.js": {
"title": "$:/core/modules/filters/eachday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editiondescription.js": {
"title": "$:/core/modules/filters/editiondescription.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editions.js": {
"title": "$:/core/modules/filters/editions.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/else.js": {
"title": "$:/core/modules/filters/else.js",
"text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/decodeuricomponent.js": {
"title": "$:/core/modules/filters/decodeuricomponent.js",
"text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/enlist.js": {
"title": "$:/core/modules/filters/enlist.js",
"text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/field.js": {
"title": "$:/core/modules/filters/field.js",
"text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],indexedResults,\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/fields.js": {
"title": "$:/core/modules/filters/fields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/get.js": {
"title": "$:/core/modules/filters/get.js",
"text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getindex.js": {
"title": "$:/core/modules/filters/getindex.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getvariable.js": {
"title": "$:/core/modules/filters/getvariable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable is missing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/has.js": {
"title": "$:/core/modules/filters/has.js",
"text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field or index\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\t\t\t\t\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/haschanged.js": {
"title": "$:/core/modules/filters/haschanged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/indexes.js": {
"title": "$:/core/modules/filters/indexes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/insertbefore.js": {
"title": "$:/core/modules/filters/insertbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/is/binary.js": {
"title": "$:/core/modules/filters/is/binary.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/blank.js": {
"title": "$:/core/modules/filters/is/blank.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/current.js": {
"title": "$:/core/modules/filters/is/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/image.js": {
"title": "$:/core/modules/filters/is/image.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/missing.js": {
"title": "$:/core/modules/filters/is/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/orphan.js": {
"title": "$:/core/modules/filters/is/orphan.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/shadow.js": {
"title": "$:/core/modules/filters/is/shadow.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/system.js": {
"title": "$:/core/modules/filters/is/system.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tag.js": {
"title": "$:/core/modules/filters/is/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tiddler.js": {
"title": "$:/core/modules/filters/is/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/variable.js": {
"title": "$:/core/modules/filters/is/variable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title in options.widget.variables) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is.js": {
"title": "$:/core/modules/filters/is.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/limit.js": {
"title": "$:/core/modules/filters/limit.js",
"text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/links.js": {
"title": "$:/core/modules/filters/links.js",
"text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/list.js": {
"title": "$:/core/modules/filters/list.js",
"text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listed.js": {
"title": "$:/core/modules/filters/listed.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listops.js": {
"title": "$:/core/modules/filters/listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/lookup.js": {
"title": "$:/core/modules/filters/lookup.js",
"text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || options.wiki.getTiddlerText(operator.operand + operator.suffix));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/match.js": {
"title": "$:/core/modules/filters/match.js",
"text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title === operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/math.js": {
"title": "$:/core/modules/filters/math.js",
"text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/minlength.js": {
"title": "$:/core/modules/filters/minlength.js",
"text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/modules.js": {
"title": "$:/core/modules/filters/modules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/moduletypes.js": {
"title": "$:/core/modules/filters/moduletypes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/next.js": {
"title": "$:/core/modules/filters/next.js",
"text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/plugintiddlers.js": {
"title": "$:/core/modules/filters/plugintiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/prefix.js": {
"title": "$:/core/modules/filters/prefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/previous.js": {
"title": "$:/core/modules/filters/previous.js",
"text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/range.js": {
"title": "$:/core/modules/filters/range.js",
"text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/regexp.js": {
"title": "$:/core/modules/filters/regexp.js",
"text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removeprefix.js": {
"title": "$:/core/modules/filters/removeprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removesuffix.js": {
"title": "$:/core/modules/filters/removesuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title && title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sameday.js": {
"title": "$:/core/modules/filters/sameday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/search.js": {
"title": "$:/core/modules/filters/search.js",
"text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tanchored: hasFlag(\"anchored\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/shadowsource.js": {
"title": "$:/core/modules/filters/shadowsource.js",
"text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sort.js": {
"title": "$:/core/modules/filters/sort.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/splitbefore.js": {
"title": "$:/core/modules/filters/splitbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/storyviews.js": {
"title": "$:/core/modules/filters/storyviews.js",
"text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/strings.js": {
"title": "$:/core/modules/filters/strings.js",
"text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.trim(a)];}\n);\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subfilter.js": {
"title": "$:/core/modules/filters/subfilter.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subtiddlerfields.js": {
"title": "$:/core/modules/filters/subtiddlerfields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/suffix.js": {
"title": "$:/core/modules/filters/suffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tag.js": {
"title": "$:/core/modules/filters/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [],indexedResults;\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tagging.js": {
"title": "$:/core/modules/filters/tagging.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tags.js": {
"title": "$:/core/modules/filters/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/then.js": {
"title": "$:/core/modules/filters/then.js",
"text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/title.js": {
"title": "$:/core/modules/filters/title.js",
"text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/untagged.js": {
"title": "$:/core/modules/filters/untagged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/variables.js": {
"title": "$:/core/modules/filters/variables.js",
"text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/wikiparserrules.js": {
"title": "$:/core/modules/filters/wikiparserrules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/x-listops.js": {
"title": "$:/core/modules/filters/x-listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n\n /*\n Fetch titles from the current list\n */\n var prepare_results = function (source) {\n var results = [];\n source(function (tiddler, title) {\n results.push(title);\n });\n return results;\n };\n\n /*\n Moves a number of items from the tail of the current list before the item named in the operand\n */\n exports.putbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list after the item named in the operand\n */\n exports.putafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Replaces the item named in the operand with a number of items from the tail of the current list\n */\n exports.replace = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -count) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list to the head of the list\n */\n exports.putfirst = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(-count).concat(results.slice(0, -count));\n };\n\n /*\n Moves a number of items from the head of the current list to the tail of the list\n */\n exports.putlast = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(count).concat(results.slice(0, count));\n };\n\n /*\n Moves the item named in the operand a number of places forward or backward in the list\n */\n exports.move = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1),\n marker = results.splice(index, 1),\n offset = (index + count) > 0 ? index + count : 0;\n return results.slice(0, offset).concat(marker).concat(results.slice(offset));\n };\n\n /*\n Returns the items from the current list that are after the item named in the operand\n */\n exports.allafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1) ? [] :\n (operator.suffix) ? results.slice(index) :\n results.slice(index + 1);\n };\n\n /*\n Returns the items from the current list that are before the item named in the operand\n */\n exports.allbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1) ? [] :\n (operator.suffix) ? results.slice(0, index + 1) :\n results.slice(0, index);\n };\n\n /*\n Appends the items listed in the operand array to the tail of the current list\n */\n exports.append = function (source, operator) {\n var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || append.length;\n return (append.length === 0) ? results :\n (operator.prefix) ? results.concat(append.slice(-count)) :\n results.concat(append.slice(0, count));\n };\n\n /*\n Prepends the items listed in the operand array to the head of the current list\n */\n exports.prepend = function (source, operator) {\n var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,prepend.length);\n return (prepend.length === 0) ? results :\n (operator.prefix) ? prepend.slice(-count).concat(results) :\n prepend.slice(0, count).concat(results);\n };\n\n /*\n Returns all items from the current list except the items listed in the operand array\n */\n exports.remove = function (source, operator) {\n var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || array.length,\n p,\n len,\n index;\n len = array.length - 1;\n for (p = 0; p < count; ++p) {\n if (operator.prefix) {\n index = results.indexOf(array[len - p]);\n } else {\n index = results.indexOf(array[p]);\n }\n if (index !== -1) {\n results.splice(index, 1);\n }\n }\n return results;\n };\n\n /*\n Returns all items from the current list sorted in the order of the items in the operand array\n */\n exports.sortby = function (source, operator) {\n var results = prepare_results(source);\n if (!results || results.length < 2) {\n return results;\n }\n var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n results.sort(function (a, b) {\n return lookup.indexOf(a) - lookup.indexOf(b);\n });\n return results;\n };\n\n /*\n Removes all duplicate items from the current list\n */\n exports.unique = function (source, operator) {\n var results = prepare_results(source);\n var set = results.reduce(function (a, b) {\n if (a.indexOf(b) < 0) {\n a.push(b);\n }\n return a;\n }, []);\n return set;\n };\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters.js": {
"title": "$:/core/modules/filters.js",
"text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"=\": // The results of the operation are pushed into the result without deduplication\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tArray.prototype.push.apply(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tif(results.length === 0) {\n\t\t\t\t\t\t\t// Main result so far is empty\n\t\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter: \" + filterString,function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/indexers/backlinks-indexer.js": {
"title": "$:/core/modules/indexers/backlinks-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser = this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t oldLinks = [],\n\t self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/field-indexer.js": {
"title": "$:/core/modules/indexers/field-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/tag-indexer.js": {
"title": "$:/core/modules/indexers/tag-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/info/platform.js": {
"title": "$:/core/modules/info/platform.js",
"text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n\t\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "info"
},
"$:/core/modules/keyboard.js": {
"title": "$:/core/modules/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/language.js": {
"title": "$:/core/modules/language.js",
"text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/macros/changecount.js": {
"title": "$:/core/modules/macros/changecount.js",
"text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/contrastcolour.js": {
"title": "$:/core/modules/macros/contrastcolour.js",
"text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/csvtiddlers.js": {
"title": "$:/core/modules/macros/csvtiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/displayshortcuts.js": {
"title": "$:/core/modules/macros/displayshortcuts.js",
"text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddler.js": {
"title": "$:/core/modules/macros/jsontiddler.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddlers.js": {
"title": "$:/core/modules/macros/jsontiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/makedatauri.js": {
"title": "$:/core/modules/macros/makedatauri.js",
"text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"},\n\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/now.js": {
"title": "$:/core/modules/macros/now.js",
"text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/qualify.js": {
"title": "$:/core/modules/macros/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/resolvepath.js": {
"title": "$:/core/modules/macros/resolvepath.js",
"text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/unusedtitle.js": {
"title": "$:/core/modules/macros/unusedtitle.js",
"text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/version.js": {
"title": "$:/core/modules/macros/version.js",
"text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/parsers/audioparser.js": {
"title": "$:/core/modules/parsers/audioparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/binaryparser.js": {
"title": "$:/core/modules/parsers/binaryparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe binary parser parses a binary tiddler into a warning message and download link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/csvparser.js": {
"title": "$:/core/modules/parsers/csvparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/htmlparser.js": {
"title": "$:/core/modules/parsers/htmlparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/imageparser.js": {
"title": "$:/core/modules/parsers/imageparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/utils/parseutils.js": {
"title": "$:/core/modules/utils/parseutils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/parsers/pdfparser.js": {
"title": "$:/core/modules/parsers/pdfparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/textparser.js": {
"title": "$:/core/modules/parsers/textparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/videoparser.js": {
"title": "$:/core/modules/parsers/videoparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/dash.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/entity.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/extlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/heading.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/html.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/html.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/image.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/image.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/import.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/import.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/list.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/list.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"div\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/rules.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/syslink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/table.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/table.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/wikiparser.js": {
"title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t// Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/pluginswitcher.js": {
"title": "$:/core/modules/pluginswitcher.js",
"text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/saver-handler.js": {
"title": "$:/core/modules/saver-handler.js",
"text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.preloadDirty = options.preloadDirty || [];\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t});\n\t\tthis.numChanges = filteredChanges.length;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\";\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\tvar\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/savers/andtidwiki.js": {
"title": "$:/core/modules/savers/andtidwiki.js",
"text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/beaker.js": {
"title": "$:/core/modules/savers/beaker.js",
"text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/download.js": {
"title": "$:/core/modules/savers/download.js",
"text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/fsosaver.js": {
"title": "$:/core/modules/savers/fsosaver.js",
"text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitea.js": {
"title": "$:/core/modules/savers/gitea.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GiteaSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/github.js": {
"title": "$:/core/modules/savers/github.js",
"text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitHubSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitlab.js": {
"title": "$:/core/modules/savers/gitlab.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitLabSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/manualdownload.js": {
"title": "$:/core/modules/savers/manualdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/msdownload.js": {
"title": "$:/core/modules/savers/msdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/put.js": {
"title": "$:/core/modules/savers/put.js",
"text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyfox.js": {
"title": "$:/core/modules/savers/tiddlyfox.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyie.js": {
"title": "$:/core/modules/savers/tiddlyie.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/twedit.js": {
"title": "$:/core/modules/savers/twedit.js",
"text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/upload.js": {
"title": "$:/core/modules/savers/upload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/server/authenticators/basic.js": {
"title": "$:/core/modules/server/authenticators/basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve($tw.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/authenticators/header.js": {
"title": "$:/core/modules/server/authenticators/header.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\");\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/routes/delete-tiddler.js": {
"title": "$:/core/modules/server/routes/delete-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-favicon.js": {
"title": "$:/core/modules/server/routes/get-favicon.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-file.js": {
"title": "$:/core/modules/server/routes/get-file.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\"),\n\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve($tw.boot.wikiPath,\"files\",suppliedFilename),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-index.js": {
"title": "$:/core/modules/server/routes/get-index.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-login-basic.js": {
"title": "$:/core/modules/server/routes/get-login-basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-status.js": {
"title": "$:/core/modules/server/routes/get-status.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler-html.js": {
"title": "$:/core/modules/server/routes/get-tiddler-html.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler.js": {
"title": "$:/core/modules/server/routes/get-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.bag = \"default\";\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddlers-json.js": {
"title": "$:/core/modules/server/routes/get-tiddlers-json.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/tiddlers.json?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif($tw.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif($tw.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/put-tiddler.js": {
"title": "$:/core/modules/server/routes/put-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/server.js": {
"title": "$:/core/modules/server/server.js",
"text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\tquerystring = require(\"querystring\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\",\n\t\"gzip\": \"no\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"path-prefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length) || \"/\";\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\tstate.queryParameters = querystring.parse(state.urlInfo.query);\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t// Create the server\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/browser-messaging.js": {
"title": "$:/core/modules/browser-messaging.js",
"text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/commands.js": {
"title": "$:/core/modules/startup/commands.js",
"text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/CSSescape.js": {
"title": "$:/core/modules/startup/CSSescape.js",
"text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = factory(root);\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\n}));\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/favicon.js": {
"title": "$:/core/modules/startup/favicon.js",
"text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/info.js": {
"title": "$:/core/modules/startup/info.js",
"text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\tvar fields = {\n\t\ttitle: TITLE_INFO_PLUGIN,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo([TITLE_INFO_PLUGIN]);\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/load-modules.js": {
"title": "$:/core/modules/startup/load-modules.js",
"text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.wiki.addIndexersToWiki();\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/password.js": {
"title": "$:/core/modules/startup/password.js",
"text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/plugins.js": {
"title": "$:/core/modules/startup/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t}\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/render.js": {
"title": "$:/core/modules/startup/render.js",
"text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar THROTTLE_REFRESH_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.hooks.invokeHook(\"th-page-refreshing\");\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !(tiddler.hasField(\"draft.of\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyThrottledTiddlersHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = THROTTLE_REFRESH_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/rootwidget.js": {
"title": "$:/core/modules/startup/rootwidget.js",
"text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup.js": {
"title": "$:/core/modules/startup.js",
"text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\tvar executeStartupTiddlers = function(tag) {\n\t\t$tw.utils.each($tw.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\t\t$tw.rootWidget.invokeActionString($tw.wiki.getTiddlerText(title),$tw.rootWidget);\n\t\t});\n\t};\n\texecuteStartupTiddlers(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-GB\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t}\n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/story.js": {
"title": "$:/core/modules/startup/story.js",
"text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers({\n\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndisableHistory: if true $:/History is NOT updated\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// Update history\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\t$tw.wiki.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t}\t\t\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/windows.js": {
"title": "$:/core/modules/startup/windows.js",
"text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\twindowTitle = paramObject.windowTitle || title,\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = windowTitle;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t},{\n\t\t\tname: \"click\",\n\t\t\thandlerObject: $tw.popup,\n\t\t\thandlerMethod: \"handleEvent\"\n\t\t}]);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/story.js": {
"title": "$:/core/modules/story.js",
"text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/storyviews/classic.js": {
"title": "$:/core/modules/storyviews/classic.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration()\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/pop.js": {
"title": "$:/core/modules/storyviews/pop.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement && targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/zoomin.js": {
"title": "$:/core/modules/storyviews/zoomin.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/syncer.js": {
"title": "$:/core/modules/syncer.js",
"text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store and synchronises them to a remote data store represented as a \"sync adaptor\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.errorRetryInterval = 5 * 1000; // Interval to retry after an error\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\t// Save parameters\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\t}\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\t\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && $tw.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\t\n\t} \n};\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title)\n\t\t};\n\t});\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif($tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t};\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.tiddlerExists(tiddlerFields.title) && self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null,\n\t\t\t\t\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!err && !isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(err,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nProcess the next task\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing\n\t// a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\t\t\t\t\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\t\t\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || $tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title); \t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t});\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/tiddler.js": {
"title": "$:/core/modules/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [],\n\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlermethod"
},
"$:/core/modules/upgraders/plugins.js": {
"title": "$:/core/modules/upgraders/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = $tw.wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? ($tw.wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/system.js": {
"title": "$:/core/modules/upgraders/system.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\n\t}\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/themetweaks.js": {
"title": "$:/core/modules/upgraders/themetweaks.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/utils/base64-utf8/base64-utf8.module.js": {
"text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)(e=r.charCodeAt(t))<128?o+=String.fromCharCode(e):e>127&&e<2048?(o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128)):(o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128));return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)(t=r.charCodeAt(o))<128?(e+=String.fromCharCode(t),o++):t>191&&t<224?(e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2):(e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3);return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var n=0;n<t.length;n++)o[t[n]]=o.require(t[n]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,n,i,d,f,a,h,c=\"\",u=0;u<r.length;)d=(t=r.charCodeAt(u++))>>2,f=(3&t)<<4|(n=r.charCodeAt(u++))>>4,a=(15&n)<<2|(i=r.charCodeAt(u++))>>6,h=63&i,isNaN(n)?a=h=64:isNaN(i)&&(h=64),c+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return c},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,n,i,d,f,a,h=\"\",c=0;c<r.length;)t=o.indexOf(r.charAt(c++))<<2|(d=o.indexOf(r.charAt(c++)))>>4,n=(15&d)<<4|(f=o.indexOf(r.charAt(c++)))>>2,i=(3&f)<<6|(a=o.indexOf(r.charAt(c++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(n)),64!=a&&(h+=String.fromCharCode(i));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
"module-type": "library"
},
"$:/core/modules/utils/crypto.js": {
"title": "$:/core/modules/utils/crypto.js",
"text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/csv.js": {
"title": "$:/core/modules/utils/csv.js",
"text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
"text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&\").replace(d,\"<\").replace(e,\">\").replace(f,\"¶<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
"module-type": "library"
},
"$:/core/modules/utils/dom/animations/slide.js": {
"title": "$:/core/modules/utils/dom/animations/slide.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "animation"
},
"$:/core/modules/utils/dom/animator.js": {
"title": "$:/core/modules/utils/dom/animator.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/browser.js": {
"title": "$:/core/modules/utils/dom/browser.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/csscolorparser.js": {
"title": "$:/core/modules/utils/dom/csscolorparser.js",
"text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom.js": {
"title": "$:/core/modules/utils/dom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/dragndrop.js": {
"title": "$:/core/modules/utils/dom/dragndrop.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/http.js": {
"title": "$:/core/modules/utils/dom/http.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data,xhr)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\turl = options.url,\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!$tw.utils.hop(headers,\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e,null,this);\n\t}\n\treturn request;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/keyboard.js": {
"title": "$:/core/modules/utils/dom/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/modal.js": {
"title": "$:/core/modules/utils/dom/modal.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event.event && options.event.event.target ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/notifier.js": {
"title": "$:/core/modules/utils/dom/notifier.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/popup.js": {
"title": "$:/core/modules/utils/dom/popup.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode,\n\t\t\tnoStateReference: options.noStateReference\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n \t\t}\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/scroller.js": {
"title": "$:/core/modules/utils/dom/scroller.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\n}\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/edition-info.js": {
"title": "$:/core/modules/utils/edition-info.js",
"text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/fakedom.js": {
"title": "$:/core/modules/utils/fakedom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis._style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this._style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this._style) {\n\t\t\t\tstyle.push($tw.utils.convertPropertyNameToStyleName(s) + \":\" + this._style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\");\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/filesystem.js": {
"title": "$:/core/modules/utils/filesystem.js",
"text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {};\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\tfilepath;\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// If not, generate a base pathname\n\tif(!filepath) {\n\t\tfilepath = title;\n\t\t// If the filepath already ends in the extension then remove it\n\t\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t\t}\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t// Don't let the filename start with a dot because such files are invisible on *nix\n\tfilepath = filepath.replace(/^\\./g,\"_\");\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// Return the full path to the file\n\treturn fullPath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",callback);\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",callback);\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",callback);\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/logger.js": {
"title": "$:/core/modules/utils/logger.js",
"text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t\tthis.alertCount += 1;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/parsetree.js": {
"title": "$:/core/modules/utils/parsetree.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/performance.js": {
"title": "$:/core/modules/utils/performance.js",
"text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\n};\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\n\t\t\t\treturn + 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/pluginmaker.js": {
"title": "$:/core/modules/utils/pluginmaker.js",
"text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/transliterate.js": {
"title": "$:/core/modules/utils/transliterate.js",
"text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/utils.js": {
"title": "$:/core/modules/utils/utils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds(),3);\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/'/g, \"\\\\'\") // single quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s) {\n\t// See http://www.json.org/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/\\x08/g, '\\\\b') // backspace\n\t\t.replace(/\\x0c/g, '\\\\f') // formfeed\n\t\t.replace(/\\t/g, '\\\\t') // tab\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10) || 0;\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type,_canonical_uri) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/widgets/action-createtiddler.js": {
"title": "$:/core/modules/widgets/action-createtiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw:false, require:false, exports:false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletefield.js": {
"title": "$:/core/modules/widgets/action-deletefield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField && tiddler) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletetiddler.js": {
"title": "$:/core/modules/widgets/action-deletetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-listops.js": {
"title": "$:/core/modules/widgets/action-listops.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-navigate.js": {
"title": "$:/core/modules/widgets/action-navigate.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-popup.js": {
"title": "$:/core/modules/widgets/action-popup.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords);\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-sendmessage.js": {
"title": "$:/core/modules/widgets/action-sendmessage.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-setfield.js": {
"title": "$:/core/modules/widgets/action-setfield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/browse.js": {
"title": "$:/core/modules/widgets/browse.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/button.js": {
"title": "$:/core/modules/widgets/button.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = (this.popup || this.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\t\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/checkbox.js": {
"title": "$:/core/modules/widgets/checkbox.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxCheckActions = this.getAttribute(\"checkactions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/codeblock.js": {
"title": "$:/core/modules/widgets/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/count.js": {
"title": "$:/core/modules/widgets/count.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = \"0\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/diff-text.js": {
"title": "$:/core/modules/widgets/diff-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/draggable.js": {
"title": "$:/core/modules/widgets/draggable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/droppable.js": {
"title": "$:/core/modules/widgets/droppable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = event.ctrlKey && ! event.shiftKey ? \"ctrl\" : event.shiftKey && !event.ctrlKey ? \"shift\" : \n\t\t\t\tevent.ctrlKey && event.shiftKey ? \"ctrl-shift\" : \"normal\" ;\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag || changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/dropzone.js": {
"title": "$:/core/modules/widgets/dropzone.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\n\t}\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-binary.js": {
"title": "$:/core/modules/widgets/edit-binary.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-bitmap.js": {
"title": "$:/core/modules/widgets/edit-bitmap.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370,\n\tDEFAULT_IMAGE_TYPE = \"image/png\";\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-shortcut.js": {
"title": "$:/core/modules/widgets/edit-shortcut.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n\tthis.shortcutFocus = this.getAttribute(\"focus\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"] || changedAttributes.focus) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-text.js": {
"title": "$:/core/modules/widgets/edit-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit.js": {
"title": "$:/core/modules/widgets/edit.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder},\n\t\t\t\"tabindex\": {type: \"string\", value: this.editTabIndex},\n\t\t\t\"focus\": {type: \"string\", value: this.editFocus}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/element.js": {
"title": "$:/core/modules/widgets/element.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\ttag = \"h\" + headingLevel;\n\t}\n\t// Create the DOM node\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/encrypt.js": {
"title": "$:/core/modules/widgets/encrypt.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/entity.js": {
"title": "$:/core/modules/widgets/entity.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fieldmangler.js": {
"title": "$:/core/modules/widgets/fieldmangler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fields.js": {
"title": "$:/core/modules/widgets/fields.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif( changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/image.js": {
"title": "$:/core/modules/widgets/image.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/importvariables.js": {
"title": "$:/core/modules/widgets/importvariables.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar widgetPointer = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tvar node = {\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t};\n\t\t\t\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.makeChildWidgets([node]);\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/keyboard.js": {
"title": "$:/core/modules/widgets/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\",\"\");\n\tthis.message = this.getAttribute(\"message\",\"\");\n\tthis.param = this.getAttribute(\"param\",\"\");\n\tthis.key = this.getAttribute(\"key\",\"\");\n\tthis.tag = this.getAttribute(\"tag\",\"\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/link.js": {
"title": "$:/core/modules/widgets/link.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/linkcatcher.js": {
"title": "$:/core/modules/widgets/linkcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/list.js": {
"title": "$:/core/modules/widgets/list.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/macrocall.js": {
"title": "$:/core/modules/widgets/macrocall.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/navigator.js": {
"title": "$:/core/modules/widgets/navigator.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.wiki.addToStory(title,fromTitle,this.storyTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\treturn this.wiki.generateDraftTitle(title);\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList && storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList && storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList && storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix || \"$:/state/folded/\";\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\tthis.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/password.js": {
"title": "$:/core/modules/widgets/password.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/qualify.js": {
"title": "$:/core/modules/widgets/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/radio.js": {
"title": "$:/core/modules/widgets/radio.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n \t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n \t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/range.js": {
"title": "$:/core/modules/widgets/range.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\t\t\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tfieldName = this.tiddlerField || \"text\",\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue || \"\");\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue || \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\");\n\tthis.tiddlerIndex = this.getAttribute(\"index\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes['min'] || changedAttributes['max'] || changedAttributes['increment'] || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\t\t\t\t\n\t\t\t}\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/raw.js": {
"title": "$:/core/modules/widgets/raw.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/reveal.js": {
"title": "$:/core/modules/widgets/reveal.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state,\n\t defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = this.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/scrollable.js": {
"title": "$:/core/modules/widgets/scrollable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/select.js": {
"title": "$:/core/modules/widgets/select.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\n\t\t}\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\tthis.selectTooltip = this.getAttribute(\"tooltip\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex || changedAttributes.selectTooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/set.js": {
"title": "$:/core/modules/widgets/set.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/text.js": {
"title": "$:/core/modules/widgets/text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/tiddler.js": {
"title": "$:/core/modules/widgets/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/transclude.js": {
"title": "$:/core/modules/widgets/transclude.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/vars.js": {
"title": "$:/core/modules/widgets/vars.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/view.js": {
"title": "$:/core/modules/widgets/view.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/widget.js": {
"title": "$:/core/modules/widgets/widget.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\t// Bail if parseTreeNode is undefined, meaning that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].render(parent,nextSibling);\n\t};\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].refresh(changedTiddlers) || refreshed;\n\t}\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/wikify.js": {
"title": "$:/core/modules/widgets/wikify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/wiki-bulkops.js": {
"title": "$:/core/modules/wiki-bulkops.js",
"text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/wiki.js": {
"title": "$:/core/modules/wiki.js",
"text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.isBinaryTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.encoding === \"base64\";\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t// indexOf unless we have a new\n\t\t\t\t\t// position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tmoveItemInList(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,spaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\tanchored: If true, forces all but regexp searches to be anchored to the start of text\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\",\n\t\tanchor = options.anchored ? \"^\" : \"\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(!tiddler.hasField(\"_is_skinny\")) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text || \"\";\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\t\t\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\t\t\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n})();\n\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/palettes/Blanca": {
"title": "$:/palettes/Blanca",
"name": "Blanca",
"description": "A clean white palette to let you focus",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Blue": {
"title": "$:/palettes/Blue",
"name": "Blue",
"description": "A blue theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Muted": {
"title": "$:/palettes/Muted",
"name": "Muted",
"description": "Bright tiddlers on a muted background",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastLight": {
"title": "$:/palettes/ContrastLight",
"name": "Contrast (Light)",
"description": "High contrast and unambiguous (light version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastDark": {
"title": "$:/palettes/ContrastDark",
"name": "Contrast (Dark)",
"description": "High contrast and unambiguous (dark version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/DarkPhotos": {
"title": "$:/palettes/DarkPhotos",
"created": "20150402111612188",
"description": "Good with dark photo backgrounds",
"modified": "20150402112344080",
"name": "DarkPhotos",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/GruvboxDark": {
"title": "$:/palettes/GruvboxDark",
"name": "Gruvbox Dark",
"description": "Retro groove color scheme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "https://github.com/morhetz/gruvbox",
"text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #504945\nbutton-foreground: #fbf1c7\nbutton-border: transparent\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: #7c6f64\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #282828\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: <<colour button-background>>\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>"
},
"$:/palettes/Nord": {
"title": "$:/palettes/Nord",
"name": "Nord",
"description": "An arctic, north-bluish color palette.",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
"text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #4C566A\nbutton-foreground: #D8DEE9\nbutton-border: transparent\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #2e3440\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\n"
},
"$:/palettes/Rocker": {
"title": "$:/palettes/Rocker",
"name": "Rocker",
"description": "A dark theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarFlare": {
"title": "$:/palettes/SolarFlare",
"name": "Solar Flare",
"description": "Warm, relaxing earth colours",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarizedLight": {
"title": "$:/palettes/SolarizedLight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedLight",
"text": "alert-background: #eee8d5\nalert-border: #073642\nalert-highlight: #cb4b16\nalert-muted-foreground: #586e75\nbackground: #fdf6e3\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #cb4b16\nbutton-foreground: #fdf6e3\nbutton-border: transparent\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #d33682\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #859900\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #D08770\ndownload-background: #859900\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #fdf6e3\ndropdown-tab-background: #93a1a1\ndropzone-background: #859900\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: #d33682\nexternal-link-foreground-visited: #b58900\nexternal-link-foreground: #cb4b16\nforeground: #839496\nmessage-background: #586e75\nmessage-border: #586e75\nmessage-foreground: #eee8d5\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #eee8d5\nmodal-footer-background: #eee8d5\nmodal-footer-border: #eee8d5\nmodal-header-border: #eee8d5\nmuted-foreground: #93a1a1\nnotification-background: #EBCB8B\nnotification-border: #D08770\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #93a1a1\nprimary: #2aa198\nselect-tag-background: #eee8d5\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: #eee8d5\nsidebar-controls-foreground-hover: #268bd2\nsidebar-controls-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #839496\nsidebar-muted-foreground-hover: #657b83\nsidebar-muted-foreground: #93a1a1\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-background: #839496\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #657b83\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #839496\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #859900\nsidebar-tiddler-link-foreground: #268bd2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #dc322f\ntab-background-selected: #fdf6e3\ntab-background: #839496\ntab-border-selected: #93a1a1\ntab-border: #93a1a1\ntab-divider: #fdf6e3\ntab-foreground-selected: #839496\ntab-foreground: #eee8d5\ntable-border: #657b83\ntable-footer-background: #657b83\ntable-header-background: #93a1a1\ntag-background: #6c71c4\ntag-foreground: #eee8d5\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #b58900\ntiddler-controls-foreground-selected: #b58900\ntiddler-controls-foreground: #073642\ntiddler-editor-background: #eee8d5\ntiddler-editor-border-image: #eee8d5\ntiddler-editor-border: #eee8d5\ntiddler-editor-fields-even: #eee8d5\ntiddler-editor-fields-odd: #fdf6e3\ntiddler-info-background: #eee8d5\ntiddler-info-border: #eee8d5\ntiddler-info-tab-background: #586e75\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #586e75\ntiddler-title-foreground: #073642\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #839496\nvery-muted-foreground: #93a1a1\n"
},
"$:/palettes/SpartanDay": {
"title": "$:/palettes/SpartanDay",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Cold, spartan day colors",
"name": "Spartan Day",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
},
"$:/palettes/SpartanNight": {
"title": "$:/palettes/SpartanNight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Dark spartan colors",
"name": "Spartan Night",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
},
"$:/palettes/Twilight": {
"title": "$:/palettes/Twilight",
"tags": "$:/tags/Palette",
"author": "Thomas Elmiger",
"type": "application/x-tiddler-dictionary",
"name": "Twilight",
"description": "Delightful, soft darkness.",
"text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"
},
"$:/palettes/Vanilla": {
"title": "$:/palettes/Vanilla",
"name": "Vanilla",
"description": "Pale and unobtrusive",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"
},
"$:/core/readme": {
"title": "$:/core/readme",
"text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
},
"$:/library/sjcl.js/license": {
"title": "$:/library/sjcl.js/license",
"type": "text/plain",
"text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
},
"$:/core/templates/MOTW.html": {
"title": "$:/core/templates/MOTW.html",
"text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> "
},
"$:/core/templates/alltiddlers.template.html": {
"title": "$:/core/templates/alltiddlers.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
},
"$:/core/templates/canonical-uri-external-image": {
"title": "$:/core/templates/canonical-uri-external-image",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-raw": {
"title": "$:/core/templates/canonical-uri-external-raw",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-text": {
"title": "$:/core/templates/canonical-uri-external-text",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
},
"$:/core/templates/css-tiddler": {
"title": "$:/core/templates/css-tiddler",
"text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
},
"$:/core/templates/exporters/CsvFile": {
"title": "$:/core/templates/exporters/CsvFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/CsvFile}}",
"extension": ".csv",
"text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/JsonFile": {
"title": "$:/core/templates/exporters/JsonFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/JsonFile}}",
"extension": ".json",
"text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/StaticRiver": {
"title": "$:/core/templates/exporters/StaticRiver",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/StaticRiver}}",
"extension": ".html",
"text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
},
"$:/core/templates/exporters/StaticRiver/Content": {
"title": "$:/core/templates/exporters/StaticRiver/Content",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"
},
"$:/core/templates/exporters/TidFile": {
"title": "$:/core/templates/exporters/TidFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/TidFile}}",
"extension": ".tid",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"
},
"$:/core/save/all-external-js": {
"title": "$:/core/save/all-external-js",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"
},
"$:/core/templates/tiddlywiki5.js": {
"title": "$:/core/templates/tiddlywiki5.js",
"text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"
},
"$:/core/templates/tiddlywiki5.js/tiddlers": {
"title": "$:/core/templates/tiddlywiki5.js/tiddlers",
"text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n$tw.preloadTiddlerArray([{\n\ttitle: \"$:/config/SaveWikiButton/Template\",\n\ttext: \"$:/core/save/all-external-js\"\n}]);\n`\n"
},
"$:/core/templates/tiddlywiki5-external-js.html": {
"title": "$:/core/templates/tiddlywiki5-external-js.html",
"text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
},
"$:/core/templates/html-div-skinny-tiddler": {
"title": "$:/core/templates/html-div-skinny-tiddler",
"text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"
},
"$:/core/templates/html-div-tiddler": {
"title": "$:/core/templates/html-div-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
},
"$:/core/templates/html-tiddler": {
"title": "$:/core/templates/html-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
},
"$:/core/templates/javascript-tiddler": {
"title": "$:/core/templates/javascript-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
},
"$:/core/templates/json-tiddler": {
"title": "$:/core/templates/json-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
},
"$:/core/templates/module-tiddler": {
"title": "$:/core/templates/module-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
},
"$:/core/templates/plain-text-tiddler": {
"title": "$:/core/templates/plain-text-tiddler",
"text": "<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/raw-static-tiddler": {
"title": "$:/core/templates/raw-static-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
},
"$:/core/save/all": {
"title": "$:/core/save/all",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/empty": {
"title": "$:/core/save/empty",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-all": {
"title": "$:/core/save/lazy-all",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-images": {
"title": "$:/core/save/lazy-images",
"text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/templates/server/static.sidebar.wikitext": {
"title": "$:/core/templates/server/static.sidebar.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"
},
"$:/core/templates/server/static.tiddler.html": {
"title": "$:/core/templates/server/static.tiddler.html",
"text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"
},
"$:/core/templates/server/static.tiddler.wikitext": {
"title": "$:/core/templates/server/static.tiddler.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"
},
"$:/core/templates/single.tiddler.window": {
"title": "$:/core/templates/single.tiddler.window",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/templates/split-recipe": {
"title": "$:/core/templates/split-recipe",
"text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
},
"$:/core/templates/static-tiddler": {
"title": "$:/core/templates/static-tiddler",
"text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
},
"$:/core/templates/static.area": {
"title": "$:/core/templates/static.area",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"
},
"$:/core/templates/static.content": {
"title": "$:/core/templates/static.content",
"text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
},
"$:/core/templates/static.template.css": {
"title": "$:/core/templates/static.template.css",
"text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
},
"$:/core/templates/static.template.html": {
"title": "$:/core/templates/static.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
},
"$:/core/templates/static.tiddler.html": {
"title": "$:/core/templates/static.tiddler.html",
"text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`"
},
"$:/core/templates/store.area.template.html": {
"title": "$:/core/templates/store.area.template.html",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
},
"$:/core/templates/tid-tiddler": {
"title": "$:/core/templates/tid-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/tiddler-metadata": {
"title": "$:/core/templates/tiddler-metadata",
"text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
},
"$:/core/templates/tiddlywiki5.html": {
"title": "$:/core/templates/tiddlywiki5.html",
"text": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"
},
"$:/core/templates/version": {
"title": "$:/core/templates/version",
"text": "<<version>>"
},
"$:/core/templates/wikified-tiddler": {
"title": "$:/core/templates/wikified-tiddler",
"text": "<$transclude />"
},
"$:/core/ui/AboveStory/tw2-plugin-check": {
"title": "$:/core/ui/AboveStory/tw2-plugin-check",
"tags": "$:/tags/AboveStory",
"text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/Actions/new-image": {
"title": "$:/core/ui/Actions/new-image",
"tags": "$:/tags/Actions",
"description": "create a new image tiddler",
"text": "\\define get-type()\nimage/$(imageType)$\n\\end\n<$vars imageType={{$:/config/NewImageType}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags={{$:/config/NewTiddler/Tags!!tags}}/>\n</$vars>\n"
},
"$:/core/ui/Actions/new-journal": {
"title": "$:/core/ui/Actions/new-journal",
"tags": "$:/tags/Actions",
"description": "create a new journal tiddler",
"text": "<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"
},
"$:/core/ui/Actions/new-tiddler": {
"title": "$:/core/ui/Actions/new-tiddler",
"tags": "$:/tags/Actions",
"description": "create a new empty tiddler",
"text": "<$action-sendmessage $message=\"tm-new-tiddler\" tags={{$:/config/NewTiddler/Tags!!tags}}/>\n"
},
"$:/core/ui/AdvancedSearch/Filter": {
"title": "$:/core/ui/AdvancedSearch/Filter",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Filter/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Shadows": {
"title": "$:/core/ui/AdvancedSearch/Shadows",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Shadows/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Standard": {
"title": "$:/core/ui/AdvancedSearch/Standard",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Standard/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/System": {
"title": "$:/core/ui/AdvancedSearch/System",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/System/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/AdvancedSearch": {
"title": "$:/AdvancedSearch",
"icon": "$:/core/images/advanced-search-button",
"color": "#bbb",
"text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n"
},
"$:/core/ui/AlertTemplate": {
"title": "$:/core/ui/AlertTemplate",
"text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
},
"$:/core/ui/BinaryWarning": {
"title": "$:/core/ui/BinaryWarning",
"text": "\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"
},
"$:/core/ui/Components/plugin-info": {
"title": "$:/core/ui/Components/plugin-info",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
},
"$:/core/ui/Components/tag-link": {
"title": "$:/core/ui/Components/tag-link",
"text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
},
"$:/core/ui/ControlPanel/Advanced": {
"title": "$:/core/ui/ControlPanel/Advanced",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
"text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Appearance": {
"title": "$:/core/ui/ControlPanel/Appearance",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
"text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Basics": {
"title": "$:/core/ui/ControlPanel/Basics",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Basics/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewTiddler/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewJournal/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
},
"$:/core/ui/ControlPanel/EditorTypes": {
"title": "$:/core/ui/ControlPanel/EditorTypes",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/Info": {
"title": "$:/core/ui/ControlPanel/Info",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Info/Caption}}",
"text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/KeyboardShortcuts": {
"title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/LoadedModules": {
"title": "$:/core/ui/ControlPanel/LoadedModules",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
},
"$:/core/ui/ControlPanel/Modals/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
"subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
"text": "\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[title]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[title]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"
},
"$:/core/ui/ControlPanel/Palette": {
"title": "$:/core/ui/ControlPanel/Palette",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Palette/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"
},
"$:/core/ui/ControlPanel/Parsing": {
"title": "$:/core/ui/ControlPanel/Parsing",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
},
"$:/core/ui/ControlPanel/Plugins/Add/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
"text": "<<display-server-assets language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
"text": "<<display-server-assets plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
"text": "<<display-server-assets theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Updates": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
"caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
"text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"[[<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Plugins/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
"text": "<<plugin-table language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
"text": "<<plugin-table plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
"text": "<<plugin-table theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[title]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n"
},
"$:/core/ui/ControlPanel/Saving/DownloadSaver": {
"title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Saving/General": {
"title": "$:/core/ui/ControlPanel/Saving/General",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
"list-before": "",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Saving/GitHub": {
"title": "$:/core/ui/ControlPanel/Saving/GitHub",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/GitLab": {
"title": "$:/core/ui/ControlPanel/Saving/GitLab",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/TiddlySpot": {
"title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
},
"$:/core/ui/ControlPanel/Saving/Gitea": {
"title": "$:/core/ui/ControlPanel/Saving/Gitea",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
},
"$:/core/ui/ControlPanel/Saving": {
"title": "$:/core/ui/ControlPanel/Saving",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Saving/Caption}}",
"text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n"
},
"$:/core/buttonstyles/Borderless": {
"title": "$:/core/buttonstyles/Borderless",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
"text": "tc-btn-invisible"
},
"$:/core/buttonstyles/Boxed": {
"title": "$:/core/buttonstyles/Boxed",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
"text": "tc-btn-boxed"
},
"$:/core/buttonstyles/Rounded": {
"title": "$:/core/buttonstyles/Rounded",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
"text": "tc-btn-rounded"
},
"$:/core/ui/ControlPanel/Settings/CamelCase": {
"title": "$:/core/ui/ControlPanel/Settings/CamelCase",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
"title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
"title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/MissingLinks": {
"title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationHistory": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
"title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/TitleLinks": {
"title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/StoryView": {
"title": "$:/core/ui/ControlPanel/StoryView",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
"text": "{{$:/snippets/viewswitcher}}\n"
},
"$:/core/ui/ControlPanel/Stylesheets": {
"title": "$:/core/ui/ControlPanel/Stylesheets",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
},
"$:/core/ui/ControlPanel/Theme": {
"title": "$:/core/ui/ControlPanel/Theme",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Theme/Caption}}",
"text": "{{$:/snippets/themeswitcher}}\n"
},
"$:/core/ui/ControlPanel/TiddlerFields": {
"title": "$:/core/ui/ControlPanel/TiddlerFields",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
},
"$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
},
"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/PageControls": {
"title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars": {
"title": "$:/core/ui/ControlPanel/Toolbars",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
"text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n"
},
"$:/ControlPanel": {
"title": "$:/ControlPanel",
"icon": "$:/core/images/options-button",
"color": "#bbb",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n"
},
"$:/core/ui/DefaultSearchResultList": {
"title": "$:/core/ui/DefaultSearchResultList",
"tags": "$:/tags/SearchResults",
"caption": "{{$:/language/Search/DefaultResults/Caption}}",
"text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-current": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
"tags": "$:/tags/EditPreview",
"caption": "differences from current",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
"tags": "$:/tags/EditPreview",
"caption": "differences from shadow (if any)",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/output": {
"title": "$:/core/ui/EditTemplate/body/preview/output",
"tags": "$:/tags/EditPreview",
"caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
"text": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
},
"$:/state/showeditpreview": {
"title": "$:/state/showeditpreview",
"text": "no"
},
"$:/core/ui/EditTemplate/body/editor": {
"title": "$:/core/ui/EditTemplate/body/editor",
"text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n tabindex={{$:/config/EditTabIndex}}\n focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
},
"$:/core/ui/EditTemplate/body/toolbar/button": {
"title": "$:/core/ui/EditTemplate/body/toolbar/button",
"text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
},
"$:/core/ui/EditTemplate/body": {
"title": "$:/core/ui/EditTemplate/body",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}}></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/EditTemplate/controls": {
"title": "$:/core/ui/EditTemplate/controls",
"tags": "$:/tags/EditTemplate",
"text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
},
"$:/core/ui/EditTemplate/fields": {
"title": "$:/core/ui/EditTemplate/fields",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>> \n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=<<newFieldNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}}/>\n</span> \n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> \n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}}/>\n</$keyboard>\n</$set>\n</span> \n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"
},
"$:/core/ui/EditTemplate/shadow": {
"title": "$:/core/ui/EditTemplate/shadow",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
},
"$:/core/ui/EditTemplate/tags": {
"title": "$:/core/ui/EditTemplate/tags",
"tags": "$:/tags/EditTemplate",
"text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\"/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>\n</$list>\n<$set name=\"tabIndex\" value={{$:/config/EditTabIndex}}>\n<$macrocall $name=\"tag-picker\"/>\n</$set>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}}/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/EditTemplate/type": {
"title": "$:/core/ui/EditTemplate/type",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\whitespace trim\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}}/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n"
},
"$:/core/ui/EditTemplate": {
"title": "$:/core/ui/EditTemplate",
"text": "\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/Buttons/cancel": {
"title": "$:/core/ui/Buttons/cancel",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
"description": "{{$:/language/Buttons/Cancel/Hint}}",
"text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/delete": {
"title": "$:/core/ui/Buttons/delete",
"tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
"caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
"description": "{{$:/language/Buttons/Delete/Hint}}",
"text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save": {
"title": "$:/core/ui/Buttons/save",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
"description": "{{$:/language/Buttons/Save/Hint}}",
"text": "\\define save-tiddler-button()\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"
},
"$:/core/ui/EditorToolbar/bold": {
"title": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}}",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
},
"$:/core/ui/EditorToolbar/clear-dropdown": {
"title": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
},
"$:/core/ui/EditorToolbar/clear": {
"title": "$:/core/ui/EditorToolbar/clear",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/erase",
"caption": "{{$:/language/Buttons/Clear/Caption}}",
"description": "{{$:/language/Buttons/Clear/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/editor-height-dropdown": {
"title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
},
"$:/core/ui/EditorToolbar/editor-height": {
"title": "$:/core/ui/EditorToolbar/editor-height",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/fixed-height",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
"description": "{{$:/language/Buttons/EditorHeight/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/excise-dropdown": {
"title": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
},
"$:/core/ui/EditorToolbar/excise": {
"title": "$:/core/ui/EditorToolbar/excise",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/excise",
"caption": "{{$:/language/Buttons/Excise/Caption}}",
"description": "{{$:/language/Buttons/Excise/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]",
"shortcuts": "((excise))",
"dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/heading-1": {
"title": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}}",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-2": {
"title": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}}",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-3": {
"title": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}}",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}}",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}}",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}}",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
},
"$:/core/ui/EditorToolbar/italic": {
"title": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}}",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
},
"$:/core/ui/EditorToolbar/line-width-dropdown": {
"title": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/line-width": {
"title": "$:/core/ui/EditorToolbar/line-width",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/line-width",
"caption": "{{$:/language/Buttons/LineWidth/Caption}}",
"description": "{{$:/language/Buttons/LineWidth/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>"
},
"$:/core/ui/EditorToolbar/link-dropdown": {
"title": "$:/core/ui/EditorToolbar/link-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $tiddler=<<dropdown-state>> />\n<$action-deletetiddler $tiddler=<<searchTiddler>> />\n<$action-deletetiddler $tiddler=<<linkTiddler>> />\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"ENTER\" actions=<<add-link-actions>>>\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$keyboard>\n</$vars>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>"
},
"$:/core/ui/EditorToolbar/link": {
"title": "$:/core/ui/EditorToolbar/link",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/link",
"caption": "{{$:/language/Buttons/Link/Caption}}",
"description": "{{$:/language/Buttons/Link/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((link))",
"dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/linkify": {
"title": "$:/core/ui/EditorToolbar/linkify",
"caption": "{{$:/language/Buttons/Linkify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Linkify/Hint}}",
"icon": "$:/core/images/linkify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((linkify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-bullet": {
"title": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}}",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-number": {
"title": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}}",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-block": {
"title": "$:/core/ui/EditorToolbar/mono-block",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-block",
"caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
"description": "{{$:/language/Buttons/MonoBlock/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((mono-block))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-line": {
"title": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}}",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/core/ui/EditorToolbar/more-dropdown": {
"title": "$:/core/ui/EditorToolbar/more-dropdown",
"text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
},
"$:/core/ui/EditorToolbar/more": {
"title": "$:/core/ui/EditorToolbar/more",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/down-arrow",
"caption": "{{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"condition": "[<targetTiddler>]",
"dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/opacity-dropdown": {
"title": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/EditorToolbar/opacity": {
"title": "$:/core/ui/EditorToolbar/opacity",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/opacity",
"caption": "{{$:/language/Buttons/Opacity/Caption}}",
"description": "{{$:/language/Buttons/Opacity/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
},
"$:/core/ui/EditorToolbar/paint-dropdown": {
"title": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/paint": {
"title": "$:/core/ui/EditorToolbar/paint",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/paint",
"caption": "{{$:/language/Buttons/Paint/Caption}}",
"description": "{{$:/language/Buttons/Paint/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
},
"$:/core/ui/EditorToolbar/picture-dropdown": {
"title": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/picture": {
"title": "$:/core/ui/EditorToolbar/picture",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/picture",
"caption": "{{$:/language/Buttons/Picture/Caption}}",
"description": "{{$:/language/Buttons/Picture/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((picture))",
"dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/preview-type-dropdown": {
"title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
"text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/preview-type": {
"title": "$:/core/ui/EditorToolbar/preview-type",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/chevron-down",
"caption": "{{$:/language/Buttons/PreviewType/Caption}}",
"description": "{{$:/language/Buttons/PreviewType/Hint}}",
"condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
"button-classes": "tc-text-editor-toolbar-item-adjunct",
"dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
},
"$:/core/ui/EditorToolbar/preview": {
"title": "$:/core/ui/EditorToolbar/preview",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/preview-open",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/Preview/Caption}}",
"description": "{{$:/language/Buttons/Preview/Hint}}",
"condition": "[<targetTiddler>]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((preview))",
"text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/quote": {
"title": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}}",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
},
"$:/core/ui/EditorToolbar/rotate-left": {
"title": "$:/core/ui/EditorToolbar/rotate-left",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/rotate-left",
"caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
"description": "{{$:/language/Buttons/RotateLeft/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
},
"$:/core/ui/EditorToolbar/size-dropdown": {
"title": "$:/core/ui/EditorToolbar/size-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
},
"$:/core/ui/EditorToolbar/size": {
"title": "$:/core/ui/EditorToolbar/size",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/size",
"caption": "{{$:/language/Buttons/Size/Caption}}",
"description": "{{$:/language/Buttons/Size/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/stamp-dropdown": {
"title": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
},
"$:/core/ui/EditorToolbar/stamp": {
"title": "$:/core/ui/EditorToolbar/stamp",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/stamp",
"caption": "{{$:/language/Buttons/Stamp/Caption}}",
"description": "{{$:/language/Buttons/Stamp/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"shortcuts": "((stamp))",
"dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/strikethrough": {
"title": "$:/core/ui/EditorToolbar/strikethrough",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/strikethrough",
"caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
"description": "{{$:/language/Buttons/Strikethrough/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((strikethrough))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
},
"$:/core/ui/EditorToolbar/subscript": {
"title": "$:/core/ui/EditorToolbar/subscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/subscript",
"caption": "{{$:/language/Buttons/Subscript/Caption}}",
"description": "{{$:/language/Buttons/Subscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((subscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
},
"$:/core/ui/EditorToolbar/superscript": {
"title": "$:/core/ui/EditorToolbar/superscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/superscript",
"caption": "{{$:/language/Buttons/Superscript/Caption}}",
"description": "{{$:/language/Buttons/Superscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((superscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
},
"$:/core/ui/EditorToolbar/transcludify": {
"title": "$:/core/ui/EditorToolbar/transcludify",
"caption": "{{$:/language/Buttons/Transcludify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Transcludify/Hint}}",
"icon": "$:/core/images/transcludify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((transcludify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
},
"$:/core/ui/EditorToolbar/underline": {
"title": "$:/core/ui/EditorToolbar/underline",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/underline",
"caption": "{{$:/language/Buttons/Underline/Caption}}",
"description": "{{$:/language/Buttons/Underline/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((underline))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
},
"$:/core/Filters/AllTags": {
"title": "$:/core/Filters/AllTags",
"tags": "$:/tags/Filter",
"filter": "[tags[]!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTags}}",
"text": ""
},
"$:/core/Filters/AllTiddlers": {
"title": "$:/core/Filters/AllTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTiddlers}}",
"text": ""
},
"$:/core/Filters/Drafts": {
"title": "$:/core/Filters/Drafts",
"tags": "$:/tags/Filter",
"filter": "[has[draft.of]sort[title]]",
"description": "{{$:/language/Filters/Drafts}}",
"text": ""
},
"$:/core/Filters/Missing": {
"title": "$:/core/Filters/Missing",
"tags": "$:/tags/Filter",
"filter": "[all[missing]sort[title]]",
"description": "{{$:/language/Filters/Missing}}",
"text": ""
},
"$:/core/Filters/Orphans": {
"title": "$:/core/Filters/Orphans",
"tags": "$:/tags/Filter",
"filter": "[all[orphans]sort[title]]",
"description": "{{$:/language/Filters/Orphans}}",
"text": ""
},
"$:/core/Filters/OverriddenShadowTiddlers": {
"title": "$:/core/Filters/OverriddenShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[shadow]]",
"description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentSystemTiddlers": {
"title": "$:/core/Filters/RecentSystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentSystemTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentTiddlers": {
"title": "$:/core/Filters/RecentTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentTiddlers}}",
"text": ""
},
"$:/core/Filters/SessionTiddlers": {
"title": "$:/core/Filters/SessionTiddlers",
"tags": "$:/tags/Filter",
"filter": "[haschanged[]]",
"description": "{{$:/language/Filters/SessionTiddlers}}",
"text": ""
},
"$:/core/Filters/ShadowTiddlers": {
"title": "$:/core/Filters/ShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[all[shadows]sort[title]]",
"description": "{{$:/language/Filters/ShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/StoryList": {
"title": "$:/core/Filters/StoryList",
"tags": "$:/tags/Filter",
"filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
"description": "{{$:/language/Filters/StoryList}}",
"text": ""
},
"$:/core/Filters/SystemTags": {
"title": "$:/core/Filters/SystemTags",
"tags": "$:/tags/Filter",
"filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTags}}",
"text": ""
},
"$:/core/Filters/SystemTiddlers": {
"title": "$:/core/Filters/SystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTiddlers}}",
"text": ""
},
"$:/core/Filters/TypedTiddlers": {
"title": "$:/core/Filters/TypedTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Filters/TypedTiddlers}}",
"text": ""
},
"$:/core/ui/ImportListing": {
"title": "$:/core/ui/ImportListing",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" stateTitle=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Diff": {
"title": "$:/core/ui/ImportPreviews/Diff",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Diff}}",
"text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
},
"$:/core/ui/ImportPreviews/DiffFields": {
"title": "$:/core/ui/ImportPreviews/DiffFields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
"text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
},
"$:/core/ui/ImportPreviews/Fields": {
"title": "$:/core/ui/ImportPreviews/Fields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Fields}}",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Text": {
"title": "$:/core/ui/ImportPreviews/Text",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Text}}",
"text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"
},
"$:/core/ui/ImportPreviews/TextRaw": {
"title": "$:/core/ui/ImportPreviews/TextRaw",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
"text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"
},
"$:/core/ui/KeyboardShortcuts/advanced-search": {
"title": "$:/core/ui/KeyboardShortcuts/advanced-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((advanced-search))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\"/>\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-image": {
"title": "$:/core/ui/KeyboardShortcuts/new-image",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-image))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-journal": {
"title": "$:/core/ui/KeyboardShortcuts/new-journal",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-journal))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-tiddler": {
"title": "$:/core/ui/KeyboardShortcuts/new-tiddler",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-tiddler))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/sidebar-search": {
"title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((sidebar-search))",
"text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
},
"$:/core/ui/KeyboardShortcut/toggle-sidebar": {
"title": "$:/core/ui/KeyboardShortcut/toggle-sidebar",
"tags": "$:/tags/KeyboardShortcut",
"key": "((toggle-sidebar))",
"text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
},
"$:/core/ui/ListItemTemplate": {
"title": "$:/core/ui/ListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link />\n</div>"
},
"$:/Manager/ItemMain/Fields": {
"title": "$:/Manager/ItemMain/Fields",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/Fields}}",
"text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/Manager/ItemMain/RawText": {
"title": "$:/Manager/ItemMain/RawText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/RawText}}",
"text": "<pre><code><$view/></code></pre>\n"
},
"$:/Manager/ItemMain/WikifiedText": {
"title": "$:/Manager/ItemMain/WikifiedText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/WikifiedText}}",
"text": "<$transclude mode=\"block\"/>\n"
},
"$:/Manager/ItemSidebar/Colour": {
"title": "$:/Manager/ItemSidebar/Colour",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Colour}}",
"text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Icon": {
"title": "$:/Manager/ItemSidebar/Icon",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Icon}}",
"text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tags": {
"title": "$:/Manager/ItemSidebar/Tags",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tags}}",
"text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tools": {
"title": "$:/Manager/ItemSidebar/Tools",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tools}}",
"text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
},
"$:/Manager": {
"title": "$:/Manager",
"icon": "$:/core/images/list",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
},
"$:/core/ui/MissingTemplate": {
"title": "$:/core/ui/MissingTemplate",
"text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
},
"$:/core/ui/MoreSideBar/All": {
"title": "$:/core/ui/MoreSideBar/All",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/All/Caption}}",
"text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Drafts": {
"title": "$:/core/ui/MoreSideBar/Drafts",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Drafts/Caption}}",
"text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Explorer": {
"title": "$:/core/ui/MoreSideBar/Explorer",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Explorer/Caption}}",
"text": "<<tree \"$:/\">>\n"
},
"$:/core/ui/MoreSideBar/Missing": {
"title": "$:/core/ui/MoreSideBar/Missing",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Missing/Caption}}",
"text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Orphans": {
"title": "$:/core/ui/MoreSideBar/Orphans",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Orphans/Caption}}",
"text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n"
},
"$:/core/ui/MoreSideBar/Recent": {
"title": "$:/core/ui/MoreSideBar/Recent",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/MoreSideBar/Shadows": {
"title": "$:/core/ui/MoreSideBar/Shadows",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Shadows/Caption}}",
"text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/System": {
"title": "$:/core/ui/MoreSideBar/System",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/System/Caption}}",
"text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Tags": {
"title": "$:/core/ui/MoreSideBar/Tags",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Tags/Caption}}",
"text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
},
"$:/core/ui/MoreSideBar/Types": {
"title": "$:/core/ui/MoreSideBar/Types",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Types/Caption}}",
"text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Languages": {
"title": "$:/core/ui/MoreSideBar/Plugins/Languages",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Theme": {
"title": "$:/core/ui/MoreSideBar/Plugins/Theme",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/Buttons/advanced-search": {
"title": "$:/core/ui/Buttons/advanced-search",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
"description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/close-all": {
"title": "$:/core/ui/Buttons/close-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
"description": "{{$:/language/Buttons/CloseAll/Hint}}",
"text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/control-panel": {
"title": "$:/core/ui/Buttons/control-panel",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
"description": "{{$:/language/Buttons/ControlPanel/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/encryption": {
"title": "$:/core/ui/Buttons/encryption",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
"description": "{{$:/language/Buttons/Encryption/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/export-page": {
"title": "$:/core/ui/Buttons/export-page",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
"description": "{{$:/language/Buttons/ExportPage/Hint}}",
"text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
},
"$:/core/ui/Buttons/fold-all": {
"title": "$:/core/ui/Buttons/fold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
"description": "{{$:/language/Buttons/FoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/full-screen": {
"title": "$:/core/ui/Buttons/full-screen",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
"description": "{{$:/language/Buttons/FullScreen/Hint}}",
"text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/home": {
"title": "$:/core/ui/Buttons/home",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
"description": "{{$:/language/Buttons/Home/Hint}}",
"text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/import": {
"title": "$:/core/ui/Buttons/import",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
"description": "{{$:/language/Buttons/Import/Hint}}",
"text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
},
"$:/core/ui/Buttons/language": {
"title": "$:/core/ui/Buttons/language",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
"description": "{{$:/language/Buttons/Language/Hint}}",
"text": "\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/manager": {
"title": "$:/core/ui/Buttons/manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
"description": "{{$:/language/Buttons/Manager/Hint}}",
"text": "\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/more-page-actions": {
"title": "$:/core/ui/Buttons/more-page-actions",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-image": {
"title": "$:/core/ui/Buttons/new-image",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
"description": "{{$:/language/Buttons/NewImage/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/new-journal": {
"title": "$:/core/ui/Buttons/new-journal",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
"description": "{{$:/language/Buttons/NewJournal/Hint}}",
"text": "\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"
},
"$:/core/ui/Buttons/new-tiddler": {
"title": "$:/core/ui/Buttons/new-tiddler",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
"description": "{{$:/language/Buttons/NewTiddler/Hint}}",
"text": "\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/palette": {
"title": "$:/core/ui/Buttons/palette",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
"description": "{{$:/language/Buttons/Palette/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/print": {
"title": "$:/core/ui/Buttons/print",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
"description": "{{$:/language/Buttons/Print/Hint}}",
"text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/refresh": {
"title": "$:/core/ui/Buttons/refresh",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
"description": "{{$:/language/Buttons/Refresh/Hint}}",
"text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save-wiki": {
"title": "$:/core/ui/Buttons/save-wiki",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
"description": "{{$:/language/Buttons/SaveWiki/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
},
"$:/core/ui/Buttons/storyview": {
"title": "$:/core/ui/Buttons/storyview",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
"description": "{{$:/language/Buttons/StoryView/Hint}}",
"text": "\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/tag-manager": {
"title": "$:/core/ui/Buttons/tag-manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
"description": "{{$:/language/Buttons/TagManager/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/theme": {
"title": "$:/core/ui/Buttons/theme",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
"description": "{{$:/language/Buttons/Theme/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/timestamp": {
"title": "$:/core/ui/Buttons/timestamp",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
"description": "{{$:/language/Buttons/Timestamp/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/unfold-all": {
"title": "$:/core/ui/Buttons/unfold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
"description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/PageTemplate/pagecontrols": {
"title": "$:/core/ui/PageTemplate/pagecontrols",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"
},
"$:/core/ui/PageStylesheet": {
"title": "$:/core/ui/PageStylesheet",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/PageTemplate/alerts": {
"title": "$:/core/ui/PageTemplate/alerts",
"tags": "$:/tags/PageTemplate",
"text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
},
"$:/core/ui/PageTemplate/drafts": {
"title": "$:/core/ui/PageTemplate/drafts",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/PageTemplate/pluginreloadwarning": {
"title": "$:/core/ui/PageTemplate/pluginreloadwarning",
"tags": "$:/tags/PageTemplate",
"text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/PageTemplate/sidebar": {
"title": "$:/core/ui/PageTemplate/sidebar",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\" tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"
},
"$:/core/ui/PageTemplate/story": {
"title": "$:/core/ui/PageTemplate/story",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
},
"$:/core/ui/PageTemplate/topleftbar": {
"title": "$:/core/ui/PageTemplate/topleftbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate/toprightbar": {
"title": "$:/core/ui/PageTemplate/toprightbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate": {
"title": "$:/core/ui/PageTemplate",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"tv-enable-drag-and-drop\" value={{$:/config/DragAndDrop/Enable}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/PaletteManager": {
"title": "$:/PaletteManager",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip=<<lingo Delete/Hint>> aria-label=<<lingo Delete/Hint>> class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"> <<lingo Names/External/Show>></$checkbox>\n\n<<palette-manager-table>>\n"
},
"$:/core/ui/PluginInfo": {
"title": "$:/core/ui/PluginInfo",
"text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
},
"$:/core/ui/PluginInfo/Default/contents": {
"title": "$:/core/ui/PluginInfo/Default/contents",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"
},
"$:/core/ui/PluginListItemTemplate": {
"title": "$:/core/ui/PluginListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"
},
"$:/core/ui/SearchResults": {
"title": "$:/core/ui/SearchResults",
"text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n"
},
"$:/core/ui/SideBar/More": {
"title": "$:/core/ui/SideBar/More",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/More/Caption}}",
"text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" />\n</div>"
},
"$:/core/ui/SideBar/Open": {
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Open/Caption}}",
"text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">{{$:/core/images/close-button}}</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"
},
"$:/core/ui/SideBar/Recent": {
"title": "$:/core/ui/SideBar/Recent",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/SideBar/Tools": {
"title": "$:/core/ui/SideBar/Tools",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/SideBarLists": {
"title": "$:/core/ui/SideBarLists",
"text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"
},
"$:/core/ui/SideBarSegments/page-controls": {
"title": "$:/core/ui/SideBarSegments/page-controls",
"tags": "$:/tags/SideBarSegment",
"text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n"
},
"$:/core/ui/SideBarSegments/search": {
"title": "$:/core/ui/SideBarSegments/search",
"tags": "$:/tags/SideBarSegment",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"searchTerm\" value={{{ [<searchTiddler>get[text]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search<searchTerm>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-subtitle": {
"title": "$:/core/ui/SideBarSegments/site-subtitle",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-title": {
"title": "$:/core/ui/SideBarSegments/site-title",
"tags": "$:/tags/SideBarSegment",
"text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"
},
"$:/core/ui/SideBarSegments/tabs": {
"title": "$:/core/ui/SideBarSegments/tabs",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\"/>\n\n</div>\n"
},
"$:/TagManager": {
"title": "$:/TagManager",
"icon": "$:/core/images/tag-button",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
},
"$:/core/ui/TagTemplate": {
"title": "$:/core/ui/TagTemplate",
"text": "\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
},
"$:/core/ui/TiddlerFieldTemplate": {
"title": "$:/core/ui/TiddlerFieldTemplate",
"text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
},
"$:/core/ui/TiddlerFields": {
"title": "$:/core/ui/TiddlerFields",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
},
"$:/core/ui/TiddlerInfo/Advanced": {
"title": "$:/core/ui/TiddlerInfo/Advanced",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
"text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Fields": {
"title": "$:/core/ui/TiddlerInfo/Fields",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
"text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
},
"$:/core/ui/TiddlerInfo/List": {
"title": "$:/core/ui/TiddlerInfo/List",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/List/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Listed": {
"title": "$:/core/ui/TiddlerInfo/Listed",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/References": {
"title": "$:/core/ui/TiddlerInfo/References",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/References/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>"
},
"$:/core/ui/TiddlerInfo/Tagging": {
"title": "$:/core/ui/TiddlerInfo/Tagging",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Tools": {
"title": "$:/core/ui/TiddlerInfo/Tools",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/TiddlerInfo": {
"title": "$:/core/ui/TiddlerInfo",
"text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
},
"$:/core/ui/TopBar/menu": {
"title": "$:/core/ui/TopBar/menu",
"tags": "$:/tags/TopRightBar",
"text": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"
},
"$:/core/ui/UntaggedTemplate": {
"title": "$:/core/ui/UntaggedTemplate",
"text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/body": {
"title": "$:/core/ui/ViewTemplate/body",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/classic": {
"title": "$:/core/ui/ViewTemplate/classic",
"tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/import": {
"title": "$:/core/ui/ViewTemplate/import",
"tags": "$:/tags/ViewTemplate",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ViewTemplate/plugin": {
"title": "$:/core/ui/ViewTemplate/plugin",
"tags": "$:/tags/ViewTemplate",
"text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/subtitle": {
"title": "$:/core/ui/ViewTemplate/subtitle",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/tags": {
"title": "$:/core/ui/ViewTemplate/tags",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/title": {
"title": "$:/core/ui/ViewTemplate/title",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"
},
"$:/core/ui/ViewTemplate/unfold": {
"title": "$:/core/ui/ViewTemplate/unfold",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate": {
"title": "$:/core/ui/ViewTemplate",
"text": "\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"
},
"$:/core/ui/Buttons/clone": {
"title": "$:/core/ui/Buttons/clone",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
"description": "{{$:/language/Buttons/Clone/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close-others": {
"title": "$:/core/ui/Buttons/close-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
"description": "{{$:/language/Buttons/CloseOthers/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close": {
"title": "$:/core/ui/Buttons/close",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
"description": "{{$:/language/Buttons/Close/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/edit": {
"title": "$:/core/ui/Buttons/edit",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
"description": "{{$:/language/Buttons/Edit/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/export-tiddler": {
"title": "$:/core/ui/Buttons/export-tiddler",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
"description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
"text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
},
"$:/core/ui/Buttons/fold-bar": {
"title": "$:/core/ui/Buttons/fold-bar",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
"description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
"text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
},
"$:/core/ui/Buttons/fold-others": {
"title": "$:/core/ui/Buttons/fold-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
"description": "{{$:/language/Buttons/FoldOthers/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/fold": {
"title": "$:/core/ui/Buttons/fold",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
"description": "{{$:/language/Buttons/Fold/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/info": {
"title": "$:/core/ui/Buttons/info",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
"description": "{{$:/language/Buttons/Info/Hint}}",
"text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
},
"$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/core/ui/Buttons/more-tiddler-actions",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-here": {
"title": "$:/core/ui/Buttons/new-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
"description": "{{$:/language/Buttons/NewHere/Hint}}",
"text": "\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags!!tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
},
"$:/core/ui/Buttons/new-journal-here": {
"title": "$:/core/ui/Buttons/new-journal-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
"description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
"text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags!!tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
},
"$:/core/ui/Buttons/open-window": {
"title": "$:/core/ui/Buttons/open-window",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
"description": "{{$:/language/Buttons/OpenWindow/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permalink": {
"title": "$:/core/ui/Buttons/permalink",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
"description": "{{$:/language/Buttons/Permalink/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permaview": {
"title": "$:/core/ui/Buttons/permaview",
"tags": "$:/tags/ViewToolbar $:/tags/PageControls",
"caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
"description": "{{$:/language/Buttons/Permaview/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/DefaultTiddlers": {
"title": "$:/DefaultTiddlers",
"text": "GettingStarted\n"
},
"$:/temp/advancedsearch": {
"title": "$:/temp/advancedsearch",
"text": ""
},
"$:/snippets/allfields": {
"title": "$:/snippets/allfields",
"text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
},
"$:/config/AnimationDuration": {
"title": "$:/config/AnimationDuration",
"text": "400"
},
"$:/config/AutoFocus": {
"title": "$:/config/AutoFocus",
"text": "title"
},
"$:/config/AutoSave": {
"title": "$:/config/AutoSave",
"text": "yes"
},
"$:/config/BitmapEditor/Colour": {
"title": "$:/config/BitmapEditor/Colour",
"text": "#444"
},
"$:/config/BitmapEditor/ImageSizes": {
"title": "$:/config/BitmapEditor/ImageSizes",
"text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
},
"$:/config/BitmapEditor/LineWidth": {
"title": "$:/config/BitmapEditor/LineWidth",
"text": "3px"
},
"$:/config/BitmapEditor/LineWidths": {
"title": "$:/config/BitmapEditor/LineWidths",
"text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
},
"$:/config/BitmapEditor/Opacities": {
"title": "$:/config/BitmapEditor/Opacities",
"text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
},
"$:/config/BitmapEditor/Opacity": {
"title": "$:/config/BitmapEditor/Opacity",
"text": "1.0"
},
"$:/config/DefaultMoreSidebarTab": {
"title": "$:/config/DefaultMoreSidebarTab",
"text": "$:/core/ui/MoreSideBar/Tags"
},
"$:/config/DefaultSidebarTab": {
"title": "$:/config/DefaultSidebarTab",
"text": "$:/core/ui/SideBar/Open"
},
"$:/config/DownloadSaver/AutoSave": {
"title": "$:/config/DownloadSaver/AutoSave",
"text": "no"
},
"$:/config/Drafts/TypingTimeout": {
"title": "$:/config/Drafts/TypingTimeout",
"text": "400"
},
"$:/config/EditTemplateFields/Visibility/title": {
"title": "$:/config/EditTemplateFields/Visibility/title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/tags": {
"title": "$:/config/EditTemplateFields/Visibility/tags",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/text": {
"title": "$:/config/EditTemplateFields/Visibility/text",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/creator": {
"title": "$:/config/EditTemplateFields/Visibility/creator",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/created": {
"title": "$:/config/EditTemplateFields/Visibility/created",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modified": {
"title": "$:/config/EditTemplateFields/Visibility/modified",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modifier": {
"title": "$:/config/EditTemplateFields/Visibility/modifier",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/type": {
"title": "$:/config/EditTemplateFields/Visibility/type",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.title": {
"title": "$:/config/EditTemplateFields/Visibility/draft.title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.of": {
"title": "$:/config/EditTemplateFields/Visibility/draft.of",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/revision": {
"title": "$:/config/EditTemplateFields/Visibility/revision",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/bag": {
"title": "$:/config/EditTemplateFields/Visibility/bag",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
"text": "hide"
},
"$:/config/EditorTypeMappings/image/gif": {
"title": "$:/config/EditorTypeMappings/image/gif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/webp": {
"title": "$:/config/EditorTypeMappings/image/webp",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heic": {
"title": "$:/config/EditorTypeMappings/image/heic",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heif": {
"title": "$:/config/EditorTypeMappings/image/heif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpeg": {
"title": "$:/config/EditorTypeMappings/image/jpeg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpg": {
"title": "$:/config/EditorTypeMappings/image/jpg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/png": {
"title": "$:/config/EditorTypeMappings/image/png",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/x-icon": {
"title": "$:/config/EditorTypeMappings/image/x-icon",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "text"
},
"$:/config/Manager/Show": {
"title": "$:/config/Manager/Show",
"text": "tiddlers"
},
"$:/config/Manager/Filter": {
"title": "$:/config/Manager/Filter",
"text": ""
},
"$:/config/Manager/Order": {
"title": "$:/config/Manager/Order",
"text": "forward"
},
"$:/config/Manager/Sort": {
"title": "$:/config/Manager/Sort",
"text": "title"
},
"$:/config/Manager/System": {
"title": "$:/config/Manager/System",
"text": "system"
},
"$:/config/Manager/Tag": {
"title": "$:/config/Manager/Tag",
"text": ""
},
"$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
"title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
"text": "hide"
},
"$:/config/MissingLinks": {
"title": "$:/config/MissingLinks",
"text": "yes"
},
"$:/config/Navigation/UpdateAddressBar": {
"title": "$:/config/Navigation/UpdateAddressBar",
"text": "no"
},
"$:/config/Navigation/UpdateHistory": {
"title": "$:/config/Navigation/UpdateHistory",
"text": "no"
},
"$:/config/NewImageType": {
"title": "$:/config/NewImageType",
"text": "jpeg"
},
"$:/config/OfficialPluginLibrary": {
"title": "$:/config/OfficialPluginLibrary",
"tags": "$:/tags/PluginLibrary",
"url": "https://tiddlywiki.com/library/v5.1.22/index.html",
"caption": "{{$:/language/OfficialPluginLibrary}}",
"text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
},
"$:/config/Navigation/openLinkFromInsideRiver": {
"title": "$:/config/Navigation/openLinkFromInsideRiver",
"text": "below"
},
"$:/config/Navigation/openLinkFromOutsideRiver": {
"title": "$:/config/Navigation/openLinkFromOutsideRiver",
"text": "top"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
"text": "hide"
},
"$:/config/Performance/Instrumentation": {
"title": "$:/config/Performance/Instrumentation",
"text": "no"
},
"$:/config/RegisterPluginType/plugin": {
"title": "$:/config/RegisterPluginType/plugin",
"text": "yes"
},
"$:/config/RegisterPluginType/theme": {
"title": "$:/config/RegisterPluginType/theme",
"text": "no"
},
"$:/config/RegisterPluginType/language": {
"title": "$:/config/RegisterPluginType/language",
"text": "no"
},
"$:/config/RegisterPluginType/info": {
"title": "$:/config/RegisterPluginType/info",
"text": "no"
},
"$:/config/RegisterPluginType/import": {
"title": "$:/config/RegisterPluginType/import",
"text": "no"
},
"$:/config/SaveWikiButton/Template": {
"title": "$:/config/SaveWikiButton/Template",
"text": "$:/core/save/all"
},
"$:/config/SaverFilter": {
"title": "$:/config/SaverFilter",
"text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Search/AutoFocus": {
"title": "$:/config/Search/AutoFocus",
"text": "true"
},
"$:/config/Search/MinLength": {
"title": "$:/config/Search/MinLength",
"text": "3"
},
"$:/config/SearchResults/Default": {
"title": "$:/config/SearchResults/Default",
"text": "$:/core/ui/DefaultSearchResultList"
},
"$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
"title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
"text": "yes"
},
"$:/config/ShortcutInfo/add-field": {
"title": "$:/config/ShortcutInfo/add-field",
"text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search": {
"title": "$:/config/ShortcutInfo/advanced-search",
"text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
},
"$:/config/ShortcutInfo/bold": {
"title": "$:/config/ShortcutInfo/bold",
"text": "{{$:/language/Buttons/Bold/Hint}}"
},
"$:/config/ShortcutInfo/cancel-edit-tiddler": {
"title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
"text": "{{$:/language/Buttons/Cancel/Hint}}"
},
"$:/config/ShortcutInfo/excise": {
"title": "$:/config/ShortcutInfo/excise",
"text": "{{$:/language/Buttons/Excise/Hint}}"
},
"$:/config/ShortcutInfo/heading-1": {
"title": "$:/config/ShortcutInfo/heading-1",
"text": "{{$:/language/Buttons/Heading1/Hint}}"
},
"$:/config/ShortcutInfo/heading-2": {
"title": "$:/config/ShortcutInfo/heading-2",
"text": "{{$:/language/Buttons/Heading2/Hint}}"
},
"$:/config/ShortcutInfo/heading-3": {
"title": "$:/config/ShortcutInfo/heading-3",
"text": "{{$:/language/Buttons/Heading3/Hint}}"
},
"$:/config/ShortcutInfo/heading-4": {
"title": "$:/config/ShortcutInfo/heading-4",
"text": "{{$:/language/Buttons/Heading4/Hint}}"
},
"$:/config/ShortcutInfo/heading-5": {
"title": "$:/config/ShortcutInfo/heading-5",
"text": "{{$:/language/Buttons/Heading5/Hint}}"
},
"$:/config/ShortcutInfo/heading-6": {
"title": "$:/config/ShortcutInfo/heading-6",
"text": "{{$:/language/Buttons/Heading6/Hint}}"
},
"$:/config/ShortcutInfo/italic": {
"title": "$:/config/ShortcutInfo/italic",
"text": "{{$:/language/Buttons/Italic/Hint}}"
},
"$:/config/ShortcutInfo/link": {
"title": "$:/config/ShortcutInfo/link",
"text": "{{$:/language/Buttons/Link/Hint}}"
},
"$:/config/ShortcutInfo/list-bullet": {
"title": "$:/config/ShortcutInfo/list-bullet",
"text": "{{$:/language/Buttons/ListBullet/Hint}}"
},
"$:/config/ShortcutInfo/list-number": {
"title": "$:/config/ShortcutInfo/list-number",
"text": "{{$:/language/Buttons/ListNumber/Hint}}"
},
"$:/config/ShortcutInfo/mono-block": {
"title": "$:/config/ShortcutInfo/mono-block",
"text": "{{$:/language/Buttons/MonoBlock/Hint}}"
},
"$:/config/ShortcutInfo/mono-line": {
"title": "$:/config/ShortcutInfo/mono-line",
"text": "{{$:/language/Buttons/MonoLine/Hint}}"
},
"$:/config/ShortcutInfo/new-image": {
"title": "$:/config/ShortcutInfo/new-image",
"text": "{{$:/language/Buttons/NewImage/Hint}}"
},
"$:/config/ShortcutInfo/new-journal": {
"title": "$:/config/ShortcutInfo/new-journal",
"text": "{{$:/language/Buttons/NewJournal/Hint}}"
},
"$:/config/ShortcutInfo/new-tiddler": {
"title": "$:/config/ShortcutInfo/new-tiddler",
"text": "{{$:/language/Buttons/NewTiddler/Hint}}"
},
"$:/config/ShortcutInfo/picture": {
"title": "$:/config/ShortcutInfo/picture",
"text": "{{$:/language/Buttons/Picture/Hint}}"
},
"$:/config/ShortcutInfo/preview": {
"title": "$:/config/ShortcutInfo/preview",
"text": "{{$:/language/Buttons/Preview/Hint}}"
},
"$:/config/ShortcutInfo/quote": {
"title": "$:/config/ShortcutInfo/quote",
"text": "{{$:/language/Buttons/Quote/Hint}}"
},
"$:/config/ShortcutInfo/save-tiddler": {
"title": "$:/config/ShortcutInfo/save-tiddler",
"text": "{{$:/language/Buttons/Save/Hint}}"
},
"$:/config/ShortcutInfo/sidebar-search": {
"title": "$:/config/ShortcutInfo/sidebar-search",
"text": "{{$:/language/Buttons/SidebarSearch/Hint}}"
},
"$:/config/ShortcutInfo/stamp": {
"title": "$:/config/ShortcutInfo/stamp",
"text": "{{$:/language/Buttons/Stamp/Hint}}"
},
"$:/config/ShortcutInfo/strikethrough": {
"title": "$:/config/ShortcutInfo/strikethrough",
"text": "{{$:/language/Buttons/Strikethrough/Hint}}"
},
"$:/config/ShortcutInfo/subscript": {
"title": "$:/config/ShortcutInfo/subscript",
"text": "{{$:/language/Buttons/Subscript/Hint}}"
},
"$:/config/ShortcutInfo/superscript": {
"title": "$:/config/ShortcutInfo/superscript",
"text": "{{$:/language/Buttons/Superscript/Hint}}"
},
"$:/config/ShortcutInfo/toggle-sidebar": {
"title": "$:/config/ShortcutInfo/toggle-sidebar",
"text": "{{$:/language/Buttons/ToggleSidebar/Hint}}"
},
"$:/config/ShortcutInfo/underline": {
"title": "$:/config/ShortcutInfo/underline",
"text": "{{$:/language/Buttons/Underline/Hint}}"
},
"$:/config/SyncFilter": {
"title": "$:/config/SyncFilter",
"text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Tags/MinLength": {
"title": "$:/config/Tags/MinLength",
"text": "0"
},
"$:/config/TextEditor/EditorHeight/Height": {
"title": "$:/config/TextEditor/EditorHeight/Height",
"text": "400px"
},
"$:/config/TextEditor/EditorHeight/Mode": {
"title": "$:/config/TextEditor/EditorHeight/Mode",
"text": "auto"
},
"$:/config/TiddlerInfo/Default": {
"title": "$:/config/TiddlerInfo/Default",
"text": "$:/core/ui/TiddlerInfo/Fields"
},
"$:/config/TiddlerInfo/Mode": {
"title": "$:/config/TiddlerInfo/Mode",
"text": "popup"
},
"$:/config/Tiddlers/TitleLinks": {
"title": "$:/config/Tiddlers/TitleLinks",
"text": "no"
},
"$:/config/Toolbar/ButtonClass": {
"title": "$:/config/Toolbar/ButtonClass",
"text": "tc-btn-invisible"
},
"$:/config/Toolbar/Icons": {
"title": "$:/config/Toolbar/Icons",
"text": "yes"
},
"$:/config/Toolbar/Text": {
"title": "$:/config/Toolbar/Text",
"text": "no"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
"text": "show"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
"text": "hide"
},
"$:/config/shortcuts-mac/bold": {
"title": "$:/config/shortcuts-mac/bold",
"text": "meta-B"
},
"$:/config/shortcuts-mac/italic": {
"title": "$:/config/shortcuts-mac/italic",
"text": "meta-I"
},
"$:/config/shortcuts-mac/underline": {
"title": "$:/config/shortcuts-mac/underline",
"text": "meta-U"
},
"$:/config/shortcuts-mac/new-image": {
"title": "$:/config/shortcuts-mac/new-image",
"text": "ctrl-I"
},
"$:/config/shortcuts-mac/new-journal": {
"title": "$:/config/shortcuts-mac/new-journal",
"text": "ctrl-J"
},
"$:/config/shortcuts-mac/new-tiddler": {
"title": "$:/config/shortcuts-mac/new-tiddler",
"text": "ctrl-N"
},
"$:/config/shortcuts-not-mac/bold": {
"title": "$:/config/shortcuts-not-mac/bold",
"text": "ctrl-B"
},
"$:/config/shortcuts-not-mac/italic": {
"title": "$:/config/shortcuts-not-mac/italic",
"text": "ctrl-I"
},
"$:/config/shortcuts-not-mac/underline": {
"title": "$:/config/shortcuts-not-mac/underline",
"text": "ctrl-U"
},
"$:/config/shortcuts-not-mac/new-image": {
"title": "$:/config/shortcuts-not-mac/new-image",
"text": "alt-I"
},
"$:/config/shortcuts-not-mac/new-journal": {
"title": "$:/config/shortcuts-not-mac/new-journal",
"text": "alt-J"
},
"$:/config/shortcuts-not-mac/new-tiddler": {
"title": "$:/config/shortcuts-not-mac/new-tiddler",
"text": "alt-N"
},
"$:/config/shortcuts/add-field": {
"title": "$:/config/shortcuts/add-field",
"text": "enter"
},
"$:/config/shortcuts/advanced-search": {
"title": "$:/config/shortcuts/advanced-search",
"text": "ctrl-shift-A"
},
"$:/config/shortcuts/cancel-edit-tiddler": {
"title": "$:/config/shortcuts/cancel-edit-tiddler",
"text": "escape"
},
"$:/config/shortcuts/excise": {
"title": "$:/config/shortcuts/excise",
"text": "ctrl-E"
},
"$:/config/shortcuts/sidebar-search": {
"title": "$:/config/shortcuts/sidebar-search",
"text": "ctrl-shift-F"
},
"$:/config/shortcuts/heading-1": {
"title": "$:/config/shortcuts/heading-1",
"text": "ctrl-1"
},
"$:/config/shortcuts/heading-2": {
"title": "$:/config/shortcuts/heading-2",
"text": "ctrl-2"
},
"$:/config/shortcuts/heading-3": {
"title": "$:/config/shortcuts/heading-3",
"text": "ctrl-3"
},
"$:/config/shortcuts/heading-4": {
"title": "$:/config/shortcuts/heading-4",
"text": "ctrl-4"
},
"$:/config/shortcuts/heading-5": {
"title": "$:/config/shortcuts/heading-5",
"text": "ctrl-5"
},
"$:/config/shortcuts/heading-6": {
"title": "$:/config/shortcuts/heading-6",
"text": "ctrl-6"
},
"$:/config/shortcuts/link": {
"title": "$:/config/shortcuts/link",
"text": "ctrl-L"
},
"$:/config/shortcuts/linkify": {
"title": "$:/config/shortcuts/linkify",
"text": "alt-shift-L"
},
"$:/config/shortcuts/list-bullet": {
"title": "$:/config/shortcuts/list-bullet",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/list-number": {
"title": "$:/config/shortcuts/list-number",
"text": "ctrl-shift-N"
},
"$:/config/shortcuts/mono-block": {
"title": "$:/config/shortcuts/mono-block",
"text": "ctrl-shift-M"
},
"$:/config/shortcuts/mono-line": {
"title": "$:/config/shortcuts/mono-line",
"text": "ctrl-M"
},
"$:/config/shortcuts/picture": {
"title": "$:/config/shortcuts/picture",
"text": "ctrl-shift-I"
},
"$:/config/shortcuts/preview": {
"title": "$:/config/shortcuts/preview",
"text": "alt-P"
},
"$:/config/shortcuts/quote": {
"title": "$:/config/shortcuts/quote",
"text": "ctrl-Q"
},
"$:/config/shortcuts/save-tiddler": {
"title": "$:/config/shortcuts/save-tiddler",
"text": "ctrl+enter"
},
"$:/config/shortcuts/stamp": {
"title": "$:/config/shortcuts/stamp",
"text": "ctrl-S"
},
"$:/config/shortcuts/strikethrough": {
"title": "$:/config/shortcuts/strikethrough",
"text": "ctrl-T"
},
"$:/config/shortcuts/subscript": {
"title": "$:/config/shortcuts/subscript",
"text": "ctrl-shift-B"
},
"$:/config/shortcuts/superscript": {
"title": "$:/config/shortcuts/superscript",
"text": "ctrl-shift-P"
},
"$:/config/shortcuts/toggle-sidebar": {
"title": "$:/config/shortcuts/toggle-sidebar",
"text": "alt-shift-S"
},
"$:/config/shortcuts/transcludify": {
"title": "$:/config/shortcuts/transcludify",
"text": "alt-shift-T"
},
"$:/config/ui/EditTemplate": {
"title": "$:/config/ui/EditTemplate",
"text": "$:/core/ui/EditTemplate"
},
"$:/config/ui/ViewTemplate": {
"title": "$:/config/ui/ViewTemplate",
"text": "$:/core/ui/ViewTemplate"
},
"$:/config/WikiParserRules/Inline/wikilink": {
"title": "$:/config/WikiParserRules/Inline/wikilink",
"text": "enable"
},
"$:/snippets/currpalettepreview": {
"title": "$:/snippets/currpalettepreview",
"text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}\n><div class=\"tc-swatch\" style=<<swatchStyle>> title=<<colour>>/></$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>"
},
"$:/snippets/download-wiki-button": {
"title": "$:/snippets/download-wiki-button",
"text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
},
"$:/language": {
"title": "$:/language",
"text": "$:/languages/en-GB"
},
"$:/snippets/languageswitcher": {
"title": "$:/snippets/languageswitcher",
"text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/macros/CSS": {
"title": "$:/core/macros/CSS",
"tags": "$:/tags/Macro",
"text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
},
"$:/core/macros/colour-picker": {
"title": "$:/core/macros/colour-picker",
"tags": "$:/tags/Macro",
"text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
},
"$:/core/macros/copy-to-clipboard": {
"title": "$:/core/macros/copy-to-clipboard",
"tags": "$:/tags/Macro",
"text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
},
"$:/core/macros/diff": {
"title": "$:/core/macros/diff",
"tags": "$:/tags/Macro",
"text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
},
"$:/core/macros/dumpvariables": {
"title": "$:/core/macros/dumpvariables",
"tags": "$:/tags/Macro",
"text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"
},
"$:/core/macros/export": {
"title": "$:/core/macros/export",
"tags": "$:/tags/Macro",
"text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
},
"$:/core/macros/image-picker": {
"title": "$:/core/macros/image-picker",
"created": "20170715180840889",
"modified": "20170715180914005",
"tags": "$:/tags/Macro",
"type": "text/vnd.tiddlywiki",
"text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
},
"$:/core/macros/lingo": {
"title": "$:/core/macros/lingo",
"tags": "$:/tags/Macro",
"text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
},
"$:/core/macros/list": {
"title": "$:/core/macros/list",
"tags": "$:/tags/Macro",
"text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n</$type$>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"
},
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tag-picker": {
"title": "$:/core/macros/tag-picker",
"tags": "$:/tags/Macro",
"text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<tag>>/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker-inner()\n\\whitespace trim\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=<<newTagNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}}/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n<<add-tag-actions>>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$set name=\"newTagName\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]!is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n<hr>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n\\end\n\\define tag-picker()\n\\whitespace trim\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=<<tag-picker-inner>>>\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<<tag-picker-inner>>\n</$set>\n</$list>\n\\end\n"
},
"$:/core/macros/tag": {
"title": "$:/core/macros/tag",
"tags": "$:/tags/Macro",
"text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$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$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$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$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
},
"$:/core/macros/thumbnails": {
"title": "$:/core/macros/thumbnails",
"tags": "$:/tags/Macro",
"text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
},
"$:/core/macros/timeline": {
"title": "$:/core/macros/timeline",
"created": "20141212105914482",
"modified": "20141212110330815",
"tags": "$:/tags/Macro",
"text": "\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
},
"$:/core/macros/toc": {
"title": "$:/core/macros/toc",
"tags": "$:/tags/Macro",
"text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$link>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n <li class=<<toc-item-class>>>\n <$link>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=<<__selectedTiddler__>>>\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=<<__template__>>>\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"
},
"$:/core/macros/translink": {
"title": "$:/core/macros/translink",
"tags": "$:/tags/Macro",
"text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tree": {
"title": "$:/core/macros/tree",
"tags": "$:/tags/Macro",
"text": "\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/utils": {
"title": "$:/core/macros/utils",
"text": "\\define colour(colour)\n$colour$\n\\end\n"
},
"$:/snippets/minifocusswitcher": {
"title": "$:/snippets/minifocusswitcher",
"text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"
},
"$:/snippets/minilanguageswitcher": {
"title": "$:/snippets/minilanguageswitcher",
"text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/minithemeswitcher": {
"title": "$:/snippets/minithemeswitcher",
"text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/modules": {
"title": "$:/snippets/modules",
"text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
},
"$:/palette": {
"title": "$:/palette",
"text": "$:/palettes/Vanilla"
},
"$:/snippets/paletteeditor": {
"title": "$:/snippets/paletteeditor",
"text": "<$transclude tiddler=\"$:/PaletteManager\"/>\n"
},
"$:/snippets/palettepreview": {
"title": "$:/snippets/palettepreview",
"text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
},
"$:/snippets/paletteswitcher": {
"title": "$:/snippets/paletteswitcher",
"text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"
},
"$:/snippets/peek-stylesheets": {
"title": "$:/snippets/peek-stylesheets",
"text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
},
"$:/temp/search": {
"title": "$:/temp/search",
"text": ""
},
"$:/tags/AdvancedSearch": {
"title": "$:/tags/AdvancedSearch",
"list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
},
"$:/tags/AdvancedSearch/FilterButton": {
"title": "$:/tags/AdvancedSearch/FilterButton",
"list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
},
"$:/tags/ControlPanel": {
"title": "$:/tags/ControlPanel",
"list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
},
"$:/tags/ControlPanel/Info": {
"title": "$:/tags/ControlPanel/Info",
"list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
},
"$:/tags/ControlPanel/Plugins": {
"title": "$:/tags/ControlPanel/Plugins",
"list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
},
"$:/tags/EditTemplate": {
"title": "$:/tags/EditTemplate",
"list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
},
"$:/tags/EditToolbar": {
"title": "$:/tags/EditToolbar",
"list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
},
"$:/tags/EditorToolbar": {
"title": "$:/tags/EditorToolbar",
"list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
},
"$:/tags/Manager/ItemMain": {
"title": "$:/tags/Manager/ItemMain",
"list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
},
"$:/tags/Manager/ItemSidebar": {
"title": "$:/tags/Manager/ItemSidebar",
"list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
},
"$:/tags/MoreSideBar": {
"title": "$:/tags/MoreSideBar",
"list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
"text": ""
},
"$:/tags/PageControls": {
"title": "$:/tags/PageControls",
"list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
},
"$:/tags/PageTemplate": {
"title": "$:/tags/PageTemplate",
"list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
"text": ""
},
"$:/tags/PluginLibrary": {
"title": "$:/tags/PluginLibrary",
"list": "$:/config/OfficialPluginLibrary"
},
"$:/tags/SideBar": {
"title": "$:/tags/SideBar",
"list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
"text": ""
},
"$:/tags/SideBarSegment": {
"title": "$:/tags/SideBarSegment",
"list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"
},
"$:/tags/TiddlerInfo": {
"title": "$:/tags/TiddlerInfo",
"list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
"text": ""
},
"$:/tags/TiddlerInfo/Advanced": {
"title": "$:/tags/TiddlerInfo/Advanced",
"list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
},
"$:/tags/ViewTemplate": {
"title": "$:/tags/ViewTemplate",
"list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
},
"$:/tags/ViewToolbar": {
"title": "$:/tags/ViewToolbar",
"list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
},
"$:/snippets/themeswitcher": {
"title": "$:/snippets/themeswitcher",
"text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/wiki/title": {
"title": "$:/core/wiki/title",
"text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
},
"$:/view": {
"title": "$:/view",
"text": "classic"
},
"$:/snippets/viewswitcher": {
"title": "$:/snippets/viewswitcher",
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
}
}
}
/*\
title: $:/core/modules/filters/regexps.js
type: application/javascript
module-type: filteroperator
Filter operator for regexp matching and returning result. All results are returned if global flag used. All sub-groups are returned if not global and sub-group hits are found.
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Export our filter function
*/
exports.regexps = function(source,operator,options) {
var results = [],
fieldname = (operator.suffix || "title").toLowerCase(),
regexpString, regexp, flags = "", match, global,
getFieldString = function(tiddler,title) {
if(tiddler) {
return tiddler.getFieldString(fieldname);
} else if(fieldname === "title") {
return title;
} else {
return null;
}
};
// Process flags and construct regexp
regexpString = operator.operand;
match = /^\(\?([gim]+)\)/.exec(regexpString);
if(match) {
flags = match[1];
regexpString = regexpString.substr(match[0].length);
} else {
match = /\(\?([gim]+)\)$/.exec(regexpString);
if(match) {
flags = match[1];
regexpString = regexpString.substr(0,regexpString.length - match[0].length);
}
}
try {
regexp = new RegExp(regexpString,flags);
} catch(e) {
return ["" + e];
}
global = /g/.test(flags) ;
// Process the incoming tiddlers
if(operator.prefix === "!") {
source(function(tiddler,title) {
var text = getFieldString(tiddler,title);
if(text !== null) {
if(!regexp.exec(text)) {
results.push(title);
}
}
});
} else {
source(function(tiddler,title) {
var text = getFieldString(tiddler,title), ret="";
if(text !== null) {
ret = text.match(regexp) ;
if(ret !==null) {
if(global) {
results = ret ;
} else {
// if there are sub groups return sub groups START
if(ret.length > 1) { // return sub groups
results = results.concat(ret.slice(1)) ;
} else { // if no sub-groups
results.push(ret[0]);
}
}
}
}
});
}
return results;
};
})();
<$action-sendmessage
$message="tm-edit-text-operation"
$param="wrap-selection"
prefix="@@.h "
suffix="@@"
/>
\define lingo-base() $:/language/EditTemplate/
\define config-title()
$:/config/EditTemplateFields/Visibility/$(currentField)$
\end
\define config-filter()
[[hide]] -[title{$(config-title)$}]
\end
\define current-tiddler-new-field-selector()
[data-tiddler-title="$(currentTiddlerCSSescaped)$"] .tc-edit-field-add-name input
\end
\define new-field-actions()
<$action-sendmessage $message="tm-add-field" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>
<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>
<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>
<$action-sendmessage $message="tm-focus-selector" $param=<<current-tiddler-new-field-selector>>/>
\end
\define new-field()
<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>
<$reveal type="nomatch" text="" default=<<name>>>
<$button tooltip=<<lingo Fields/Add/Button/Hint>>>
<$action-sendmessage $message="tm-add-field"
$name=<<name>>
$value={{{ [<newFieldValueTiddler>get[text]] }}}/>
<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>
<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>
<<lingo Fields/Add/Button>>
</$button>
</$reveal>
<$reveal type="match" text="" default=<<name>>>
<$button>
<<lingo Fields/Add/Button>>
</$button>
</$reveal>
</$vars>
\end
\whitespace trim
<div class="tc-edit-fields">
<table class="tc-edit-fields">
<tbody>
<$list filter="[all[current]fields[]] +[sort[title]]" variable="currentField" storyview="pop">
<$list filter=<<config-filter>> variable="temp">
<tr class="tc-edit-field">
<td class="tc-edit-field-name">
<$text text=<<currentField>>/>:</td>
<td class="tc-edit-field-value">
<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}}/>
</td>
<td class="tc-edit-field-remove">
<$button class="tc-btn-invisible" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>
<$action-deletefield $field=<<currentField>>/>
{{$:/core/images/delete-button}}
</$button>
</td>
</tr>
</$list>
</$list>
</tbody>
</table>
</div>
<$fieldmangler>
<div class="tc-edit-field-add">
<em class="tc-edit">
<<lingo Fields/Add/Prompt>>
</em>
<span class="tc-edit-field-add-name">
<$edit-text tiddler=<<newFieldNameTiddler>> tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify "$:/state/popup/field-dropdown">> class="tc-edit-texteditor tc-popup-handle" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}}/>
</span>
<$button popup=<<qualify "$:/state/popup/field-dropdown">> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>
<$reveal state=<<qualify "$:/state/popup/field-dropdown">> type="nomatch" text="" default="">
<div class="tc-block-dropdown tc-edit-type-dropdown">
<$set name="tv-show-missing-links" value="yes">
<$linkcatcher to=<<newFieldNameTiddler>>>
<div class="tc-dropdown-item">
<<lingo Fields/Add/Dropdown/User>>
</div>
<$set name="newFieldName" value={{{ [<newFieldNameTiddler>get[text]] }}}>
<$list filter="[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type" variable="currentField">
<$link to=<<currentField>>>
<$text text=<<currentField>>/>
</$link>
</$list>
<div class="tc-dropdown-item">
<<lingo Fields/Add/Dropdown/System>>
</div>
<$list filter="[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]" variable="currentField">
<$link to=<<currentField>>>
<$text text=<<currentField>>/>
</$link>
</$list>
</$set>
</$linkcatcher>
</$set>
</div>
</$reveal>
<span class="tc-edit-field-add-value">
<$set name="currentTiddlerCSSescaped" value={{{ [<currentTiddler>escapecss[]] }}}>
<$keyboard key="((add-field))" actions=<<new-field-actions>>>
<$edit-text tiddler=<<newFieldValueTiddler>> tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class="tc-edit-texteditor" tabindex={{$:/config/EditTabIndex}}/>
</$keyboard>
</$set>
</span>
<span class="tc-edit-field-add-button">
<$macrocall $name="new-field"/>
</span>
</div>
</$fieldmangler>
\whitespace trim
\define lingo-base() $:/language/EditTemplate/
\define tag-styles()
background-color:$(backgroundColor)$;
fill:$(foregroundColor)$;
color:$(foregroundColor)$;
\end
\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)
\whitespace trim
<$vars foregroundColor=<<contrastcolour target:"""$colour$""" fallbackTarget:"""$fallbackTarget$""" colourA:"""$colourA$""" colourB:"""$colourB$""">> backgroundColor="""$colour$""">
<span style=<<tag-styles>> class="tc-tag-label tc-tag-list-item">
<$transclude tiddler="""$icon$"""/><$view field="title" format="text" />
<$button message="tm-remove-tag" param={{!!title}} class="tc-btn-invisible tc-remove-tag-button">{{$:/core/images/close-button}}</$button>
</span>
</$vars>
\end
\define tag-body(colour,palette,icon)
<$macrocall $name="tag-body-inner" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon="""$icon$"""/>
\end
<div class="tc-edit-tags">
<$fieldmangler>
<$list filter="[all[current]tags[]sort[title]]" storyview="pop">
<$macrocall $name="tag-body" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>
</$list>
<$set name="tabIndex" value={{$:/config/EditTabIndex}}>
<$macrocall $name="tag-picker"/>
</$set>
</$fieldmangler>
</div>
<div class="tc-more-sidebar">
<<tabs "[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]" "$:/core/ui/MoreSideBar/Tags" "$:/state/tab/moresidebar" "tc-vertical">>
</div>
\define lingo-base() $:/language/CloseAll/
\define drop-actions()
<$action-listops $tiddler="$:/StoryList" $subfilter="+[insertbefore:currentTiddler<actionTiddler>]"/>
\end
<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop">
<div style="position: relative;">
<$droppable actions=<<drop-actions>>>
<div class="tc-droppable-placeholder">
</div>
<div>
<$button message="tm-close-tiddler" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class="tc-btn-invisible tc-btn-mini">×</$button> <$link to={{!!title}}><$view field="title"/></$link>
</div>
</$droppable>
</div>
</$list>
<$tiddler tiddler="">
<$droppable actions=<<drop-actions>>>
<div class="tc-droppable-placeholder">
</div>
<$button message="tm-close-all-tiddlers" class="tc-btn-invisible tc-btn-mini"><<lingo Button>></$button>
</$droppable>
</$tiddler>
<$macrocall $name="timeline" format={{$:/language/RecentChanges/DateFormat}}/>
\define lingo-base() $:/language/ControlPanel/
\define config-title()
$:/config/PageControlButtons/Visibility/$(listItem)$
\end
<<lingo Basics/Version/Prompt>> <<version>>
<$set name="tv-config-toolbar-icons" value="yes">
<$set name="tv-config-toolbar-text" value="yes">
<$set name="tv-config-toolbar-class" value="">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem">
<div style="position:relative;">
<$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>>/> <i class="tc-muted"><$transclude tiddler=<<listItem>> field="description"/></i>
</div>
</$list>
</$set>
</$set>
</$set>
<span class="tc-tag-list-item">
<$set name="transclusion" value=<<currentTiddler>>>
<$macrocall $name="tag-pill-body" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag="""$button""" element-attributes="""popup=<<qualify "$:/state/popup/tag">> dragFilter='[all[current]tagging[]]' tag='span'"""/>
<$reveal state=<<qualify "$:/state/popup/tag">> type="popup" position="below" animate="yes" class="tc-drop-down">
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
<hr>
<$button class="tc-btn-invisible">
<$list filter="[tag{!!title}]">
<$action-navigate $to=<<currentTiddler>> />
</$list>
Open All
</$button>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]" variable="listItem">
<$transclude tiddler=<<listItem>>/>
</$list>
<hr>
<$macrocall $name="list-tagged-draggable" tag=<<currentTiddler>>/>
</$reveal>
</$set>
</span>
<$reveal type="nomatch" state=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-subtitle">
<$link to={{!!modifier}}>
<$view field="modifier"/>
</$link> <$view field="modified" format="date" template={{$:/language/Tiddler/DateFormat}}/>
</div>
</$reveal>
<$reveal type="nomatch" state=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-tags-wrapper"><$list filter="[all[current]tags[]sort[title]]" template="$:/core/ui/TagTemplate" storyview="pop"/></div>
</$reveal>
\define title-styles()
fill:$(foregroundColor)$;
\end
\define config-title()
$:/config/ViewToolbarButtons/Visibility/$(listItem)$
\end
<div class="tc-tiddler-title">
<div class="tc-titlebar">
<span class="tc-tiddler-controls">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<<config-title>> text="hide"><$transclude tiddler=<<listItem>>/></$reveal></$list>
</span>
<$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}>
<$link>
<$set name="foregroundColor" value={{!!color}}>
<span class="tc-tiddler-title-icon" style=<<title-styles>>>
<$transclude tiddler={{!!icon}}/>
</span>
</$set>
<$list filter="[all[current]removeprefix[$:/]]">
<h2 class="tc-title" title={{$:/language/SystemTiddler/Tooltip}}>
<span class="tc-system-title-prefix">$:/</span><$text text=<<currentTiddler>>/>
</h2>
</$list>
<$list filter="[all[current]!prefix[$:/]]">
<h2 class="tc-title">
<$view field="title"/>
</h2>
</$list>
</$link>
</$set>
</div>
<$reveal type="nomatch" text="" default="" state=<<tiddlerInfoState>> class="tc-tiddler-info tc-popup-handle" animate="yes" retain="yes">
<$transclude tiddler="$:/core/ui/TiddlerInfo"/>
</$reveal>
</div>
[[Over deze wiki]] [[Nieuw toegevoegd]]
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAABNdJREFUeJzVm0mMFVUUhr/zoBV4NsrQKhji7hIn4oAYiIRZJK24MTFBGmXhiqUb3bDSRBMXJISdUVTYqREQRBlWajvEBiSKfWQIIJOoqLTExMh1cV5jv8cbarh13+NLelNd95z7/1V3qPOqhM6kBMwCFgIzAQdMAbqBP4F/gYvAK8DreRKNztXN8EwD1gB9OD+1wTmTAFDZCbyRN6HkDRCIycDLwGqc72p5tsrbwGrgct7EnWDACmA9zk9MdLbKO8CzBBAP7TWgC9iA888lbhFYPLTPgHHAuzi/LHELlU3AMwQUD+0xoAvYivOPJm5RkHiw5SY2G1KK30xB4iH+HbAC5zenaqHSA/xSTHfi3gE9wPqI+RIR04CXEi91EYllwDRs49JxxDJgTaIdXhuIYUAJ6IuQJxMxDJjV5MGm7cQwYGGEHJmJYcDMCDmysjSGAS5CjiysArbGKIhMiZAjLauAN3G+FOMO6I6QIw19VMRDnDlgVIQcSekDNg6LhzgG/B4hRxJWUiMeFR/DgOMRcrRiJfBWlXjjfAwDDkTI0YynqS8eYDDGKvAZVsfLyiDgc7Sf0EA8wECMgshtwEmc74QKdDUqT8QYAqeAzyPkSYfKELA7hgHXAf9EyJOW94BLRRtwPfA+zs8vOE8W1kGxvw2OwcQnr/3HQmULsB+KqwqPAT7A+aUFxc+Oyt/A3cARKOYOGAtswfklBcQOwVoq4iH8HTAW2IbziwLHDYPKduBxRuwrQhowDvgQ5xcEjBkOlQFgPvZixRVCDYEysB3n5wWKFxaVfcAyasRDmKfBG4CPOlj8DmAe8HO9f+cdAt3ADpx/OGec8NhsvxZ4jSbPEnkM6AZ24vycHDGKwdb55xkx2zciqwHjMfGzM7ZvjMoBwOP8vSnbDWHb23VUNjlJyGLAjcDHOP9QhrbNUfkaWAL8AUwHeoG5wAzgdpwfVTnPA+exR+UBYC+wB/grbcq0BtwEfILzD6ZN1BKVb4DFNC6hlbBhdxkTGv0lqQnALpx/IETiKmyNXgxcCB67BUkNmAjsxvn7gvdAZT+wCPgteOwEJDFgEiY+3aSUBJVvsd8Ofw0eOyGtDJgM7MH5GcEzqxzExBf2/k8SmhnQg4m/J3hWle+ABdhM3lYaGXAzsBfn7wqeUeV7THzdrWls6hlwCyb+zuDZVA5h4s8Fj52RWgNuxcTfETyTyiD2OHo2eOwcjDRgKiZ+evAsKoqJPxM8dk6GDegBPsX58C8zqBzGHkdPB48dgOF6wKaCxB/BxnxHigczoBfnH6k6qnIQlV5UypW/xypLV3JUjmLifwrW2wIQrIK7/MoR26DMAYZqzu0G+hMtjSrHsDF/IlRHi6KEjc+RvMDV4sHqaS+2jKhyHLvyHS8eQHC+ulykUgYuNTi/jPP1zBluewK78scC9a9w0hZFG2+dVU5iV/6aEQ9QQqX2ajer69d/61PlVKXd0UD9ikYJ6K859ir1X20bj32pWY3KaUx8ywJkJ1ICNlYdsVm+H/sJqYzV/ZcDX1y1RVY5g4n/sfiuFoNg7/F9hfP3p2qpchYT/0MB/YpGCfsQ+SlUkj+eqpzD5oNrWjz8vwocBuZWNkHNUfkSmA0cKrBfbWM09o3eLuAizvvKPuECsA14ks743jgY/wHFNC7Q4ajl5wAAAABJRU5ErkJggg==
Zoek (in) standaard tiddlers
{
"tiddlers": {
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "geavanceerd zoeken"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Geavanceerd zoeken"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "vet"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Maak selectie vet"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "annuleer"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Annuleer wijzigingen"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "maak schoon"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Maak schoon en kleur"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "kloon"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Kloon deze tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "sluit"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Sluit deze tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "sluit alle"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Sluit alle tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "sluit andere"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Sluit alle andere tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "bedieningspaneel"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Open bedieningspaneel"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "kopieer naar klembord"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Kopieer deze tekst naar het klembord"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "verwijder"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Verwijder deze tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "wijzig"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Wijzig deze tiddler"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "hoogte van de editor"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Pas automatisch hoogte aan zodat inhoud past"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Vaste hoogte:"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Kies de hoogte van de teksteditor"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "versleuteling"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "verwijder wachtwoord"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Verwijder het wachtwoord en sla de wiki onversleuteld op"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Vul in / verwijder wachtwoord om deze wiki op te slaan"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "vul wachtwoord in"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Vul een wachtwoord in om deze wiki versleuteld op te slaan"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "snij uit"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Snij uit"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Macro naam:"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Titel van de nieuwe tiddler"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Vervang uitgesneden tekst door:"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusie"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Label de nieuwe tiddler met de titel van deze tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Waarschuwing: deze tiddler bestaat al"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Knip en plak de geselecteerde tekst in een nieuwe tiddler"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "exporteer alle"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Exporteer alle tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "exporteer tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Exporteer tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "exporteer tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Exporteer tiddlers"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "klap tiddler in"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "in- / uitklap balk"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Optionele in- / uitklapbalken"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Klap de tekst van deze tiddler in"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "klap alle tiddlers in"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Klap de tekst van alle open tiddlers in"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "klap andere tiddlers in"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Klap de tekst van alle andere open tiddlers in"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "volledig scherm"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Start of verlaat 'volledig scherm'"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "kop 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Formatteer gekozen regel als kop 1"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "kop 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Formatteer gekozen regel als kop 2"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "kop 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Formatteer gekozen regel als kop 3"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "kop 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Formatteer gekozen regel als kop 4"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "kop 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Formatteer gekozen regel als kop 5"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "kop 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Formatteer gekozen regel als kop 6"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "hulp"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Toon hulppaneel"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "verberg zijpaneel"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Verberg zijpaneel"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "home"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Open de standaard tiddlers"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "importeer"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Importeer bestanden"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "info"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Toon informatie over deze tiddler"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "cursief"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Maak selectie cursief"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "taal"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Kies de taal voor de gebruikersomgeving"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "lijnbreedte"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Stel lijnbreedte in"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Maak een wikitext link"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Zet selectie tussen vierkante haakjes"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "lijst met opsommingstekens"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Maak van selectie een lijst met opsommingstekens"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "genummerde lijst"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Maak van selectie een genummerde lijst"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "blok in 'monospace'"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Maak van selectie een 'monospace' blokformattering"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "in 'monospace'"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Maak van selectie een 'monospace' karakterformattering"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "meer"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "Meer mogelijkheden"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "nieuw hier"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Maak een nieuwe tiddler gelabeld met deze tiddler"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "nieuwe afbeelding"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Maak een nieuwe afbeelding"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "nieuw journaal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Maak een nieuwe journaaltiddler"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "nieuw journaal hier"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Maak een nieuwe journaaltiddler gelabeld met deze tiddler"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "nieuwe 'Markdown' tiddler"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Maak een nieuwe 'Markdown' tiddler"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "nieuwe tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Maak een nieuwe tiddler"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "ondoorzichtigheid"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Stel de ondoorzichtigheid in"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "open in een nieuw venster"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Open tiddler in nieuw venster"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "kleur om te tekenen"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Kies kleur om te tekenen"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palet"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Kies het kleurpalet"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Zet browseradres als directe link naar deze tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Zet browseradres als directe link naar alle open tiddlers"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "afbeelding"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Voeg afbeelding in"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "voorbeeldweergave"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Toon voorbeeldweergavepaneel"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "type voorbeeldweergave"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Kies type voorbeeldweergave"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "druk pagina af"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Druk the actuele pagina af"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "'blockquote'"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Maak van selectie een 'blockqoute'"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "ververs"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Ververs deze wiki"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "Roteer linksom"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Roteer 90 graden linksom"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "opslaan"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Sla deze tiddler op"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "opslaan"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Sla wijzigingen op"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "toon zijpaneel"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Toon zijpaneel"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Kies het zoekvak in het zijpaneel"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "formaat van de afbeelding"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Hoogte:"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Wijzig het formaat van de afbeelding"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Breedte:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Stel grootte van afbeelding in"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "stempel"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Voeg je eigen ... toe"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Voeg een bestaand tekstfragment in"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Tekstfragment (Denk eraan om een beschrijvende titel aan het 'caption' veld toe te voegen)."
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Naam getoond in het menu"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "'story' weergave"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Kies de 'story' weergave"
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "doorstrepen"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Streep de selectie door"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "'subscript'"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Maak selectie 'subscript'"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "'superscript'"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Maak selectie 'superscript'"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "labelmanager"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Open labelmanager"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "thema"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Kies het thema"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "tijdstempels"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Kies of veranderingen de tijdstempels bijwerken"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "tijdstempels zijn uit"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "Werk tijdstempels niet bij als tiddlers veranderd zijn"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "tijdstempels zijn aan"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "Werk tijdstempels bij als tiddlers veranderd zijn"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "'Toggle' het zijpaneel"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusie"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Zet selectie tussen accolades"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "onderstreept"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Onderstreep het geselecteerde"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "klap tiddler uit"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Klap de tekst van deze tiddler uit"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "klap alle tiddlers uit"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Klap de tekst van alle open tiddlers uit"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Geavanceerd"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Interne informatie over deze TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Uiterlijk"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Manieren om het uiterlijk van je TiddlyWiki aan te passen"
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Duur van de animatie:"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Standaard 'focus' veld van een nieuwe tiddler"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Standaard"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Gebruik [[dubbele rechte haken]] voor titels met spaties. Of je kan <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\"> kiezen voor behoud van open tiddlers"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Standaard tiddlers:"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Kies welke tiddlers bij opstarten getoond worden:"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Hallo! Huidige taal:"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Labels voor nieuwe journaaltiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Tekst voor nieuwe journaaltiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Titel voor nieuwe journaaltiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Labels voor nieuwe tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Titel voor nieuwe tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Aantal overschreven schaduwtiddlers:"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "Aantal schaduwtiddlers:"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "Ondertitel:"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "Aantal systeem tiddlers:"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "Aantal labels:"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "Aantal tiddlers:"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "Titel van deze ~TiddlyWiki:"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "Gebruikersnaam voor wijzigingen:"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "~TiddlyWiki versie:"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "Editor types"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "Editor"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "Deze tiddlers bepalen welke editor wordt gebruikt voor specifieke tiddler types"
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "Type"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "Info"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "Informatie over deze TiddlyWiki"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "voeg sneltoets toe"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "Type hier de sneltoets"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "Sneltoetsen"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "Beheer sneltoetstoewijzing"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "Geen sneltoetsen toegekend"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "Alle platformen"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "Alleen voor Linux"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "Alleen voor Macintosh"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "Alleen voor niet-Linux"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "Alleen voor niet-Macintosh"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "Alleen voor niet-Windows"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "Alleen voor Windows"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "verwijder sneltoets"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "Geladen modules"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "Dit zijn de nu geladen tiddler modules gekoppeld aan hun brontiddlers. Alle cursieve modules hebben geen brontiddler, gewoonlijk omdat ze tijdens het bootproces gemaakt werden."
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "Palet"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "kloon"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "Het wordt aanbevolen dit schaduwpalet te klonen alvorens het te wijzigen."
},
"$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "verwijder deze invoer van het huidige palet"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Toon namen van kleuren die niet tot het huiddige palet behoren"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Wijzigen"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "Dit schaduwpalet is gewijzigd"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "reset"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "verberg editor"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Huidig palet:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "toon editor"
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "'Block parse' regels"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "'Parsing' (ontleding)"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Hier kan je globaal individuele wiki 'parser' regels uitzetten. Wees voorzichtig daar het uitzetten van sommige 'parser' regels het juist functioneren van ~Tiddlywiki kan beletten (je kan het normale gedrag herstellen met [['safe mode'|https://tiddlywiki.com/#SafeMode]])"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "'Inline parse' regels"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "'Pragma parse' regels"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Verkrijg meer plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Installeer plugins van de officiële bibliotheek"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "Deze plugin is al geïnstalleerd met versie <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Vereist ook:"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "schakel pluginbibliotheek uit"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "schakel uit"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Schakel deze plugin uit na verversen van deze pagina"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(uitgeschakeld)"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "Niets"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "activeer"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Activeer deze plugin bij verversen van deze pagina"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "installeer"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Geïnstalleerde plugins:"
},
"$:/language/ControlPanel/Plugins/Language/Prompt": {
"title": "$:/language/ControlPanel/Plugins/Language/Prompt",
"text": "Talen"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Talen"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Taal plugins"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "''\"<$text text=<<currentTab>>/>\"'' niet gevonden"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "Deze plugin is nu niet geïnstalleerd"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "open pluginbibliotheek"
},
"$:/language/ControlPanel/Plugins/Plugin/Prompt": {
"title": "$:/language/ControlPanel/Plugins/Plugin/Prompt",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(vereist een 'reload')"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "herinstalleer"
},
"$:/language/ControlPanel/Plugins/Theme/Prompt": {
"title": "$:/language/ControlPanel/Plugins/Theme/Prompt",
"text": "Thema's"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Thema's"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Thema plugins"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Opslaan"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Sta automatisch opslaan toe voor de opslagmodule"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Sla automatisch op voor de opslagmodule"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Opslagmodule"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "Deze instellingen gelden voor de HTML5 compatibele opslagmodule"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "Algemeen"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "Deze instellingen gelden voor alle geladen opslagmodules"
},
"$:/language/ControlPanel/Saving/GitHub/Branch": {
"title": "$:/language/ControlPanel/Saving/GitHub/Branch",
"text": "'Tak' (branch) voor opslaan (standaard `master`)"
},
"$:/language/ControlPanel/Saving/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitHub/Caption",
"text": "~GitHub opslagmodule"
},
"$:/language/ControlPanel/Saving/GitHub/Description": {
"title": "$:/language/ControlPanel/Saving/GitHub/Description",
"text": "Deze instellingen worden alleen gebruikt voor opslaan bij ~GitHub"
},
"$:/language/ControlPanel/Saving/GitHub/Filename": {
"title": "$:/language/ControlPanel/Saving/GitHub/Filename",
"text": "Bestandsnaam van doelbestand (b.v. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitHub/Password",
"text": "Wachtwoord, OAUTH token of persoonlijk toegangstoken"
},
"$:/language/ControlPanel/Saving/GitHub/Path": {
"title": "$:/language/ControlPanel/Saving/GitHub/Path",
"text": "Pad naar doelbestand (b.v. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitHub/Repo": {
"title": "$:/language/ControlPanel/Saving/GitHub/Repo",
"text": "Opslagplaats (b.v. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitHub/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitHub/ServerURL",
"text": "Server URL (standaard `https://api.github.com`)"
},
"$:/language/ControlPanel/Saving/GitHub/UserName": {
"title": "$:/language/ControlPanel/Saving/GitHub/UserName",
"text": "Gebruikersnaam"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Doeltak (branch) voor opslaan"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Opgeslagen door TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "Deze instellingen worden alleen gebruikt bij opslaan naar <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Bestandsnaam van doelbestand (b.v. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "Persoonlijk toegangs-token voor API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Wachtwoord, OAUTH token, of persoonlijk toegangs-token (zie [[GitHub help-pagina|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] voor details)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab opslagmodule"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "Persoonlijk toegangs-token voor API (zie [[GitLab help-pagina|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] voor details)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Pad naar doelbestand (b.v. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "Opslagdoel (b.v. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Gebruikersnaam"
},
"$:/language/ControlPanel/Saving/Heading": {
"title": "$:/language/ControlPanel/Saving/Heading",
"text": "Opslaan"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Instellingen voor opslaan van de gehele TiddlyWiki als één bestand via een opslagmodule"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Geavanceerde instellingen"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Backup folder"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Backups"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "Deze instellingen worden alleen gebruikt bij http://tiddlyspot.com of een vergelijkbare server"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Upload bestandsnaam"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//De standaard server URL is `http://<wikiname>.tiddlyspot.com/store.cgi` en kan gewijzigd worden in een speciaal serveradres//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Wachtwoord"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "Server URL"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Upload folder"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Wiki naam"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Automatisch opslaan"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Sla veranderingen niet automatisch op"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Sla veranderingen automatisch op"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Sla veranderingen tijdens wijzigen automatisch op"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "'Camel Case' wiki links"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Zet automatisch 'Camel Case' linken aan"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "Je kan globaal het automatisch linken van 'Camel Case' woorden uitzetten. Dit vereist herladen van de wiki om effect te hebben."
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Instellingen"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Standaard 'Meer' zijpaneel tab"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Geef aan welke 'Meer' tab in het zijpaneel standaard wordt getoond"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Standaard tab in zijpaneel"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Geef aan welke tab in het zijpaneel standaard wordt getoond"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Editor knoppenbalk"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Toon editor knoppenbalk"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Zet editor knoppenbalk aan of uit:"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "Met deze instellingen kun je het gedrag van TiddlyWiki veranderen."
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Tiddler infopaneel modus"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Controleer wanneer het tiddler infopaneel sluit:"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Tiddler informatiepaneel sluit automatisch"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Tiddler informatiepaneel blijft open staan tot expliciet sluiten"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Waar een tiddler opent"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigatie //vanuit// de 'story river'"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Open boven de huidige tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Open onderaan de 'story river'"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Open bovenaan de 'story river'"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Open beneden de huidige tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigatie //van buiten// de 'story river'"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Wiki links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Sta links naar ontbrekende tiddlers toe"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Kies om te linken naar nog niet bestaande tiddlers"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Navigatie adresbalk"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Gedrag van het browseradres bij navigeren naar een tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Verander het browseradres niet"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Voeg de doeltiddler toe"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Voeg alle open tiddlers toe"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Navigeer-geschiedenis"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Werk de browsergeschiedenis bij als er naar een tiddler genavigeerd wordt:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Werk de browsergeschiedenis niet bij"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Werk de browsergeschiedenis bij"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "Permalink/permaview modus"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "Kopieer permalink/permaview URL naar klembord"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "Kies hoe permalink/permaview wordt behandeld:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "Werk de adresbalk bij met permalink/permaview URL"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Prestatiemeting"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Zet prestatiemeting aan"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Toont prestatiestatistieken in de 'browser console'. Dit vereist herladen van de wiki om effect te hebben"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Titels van tiddlers"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Toon (optioneel) tiddler titels als links"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Toon tiddler titels niet als links"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Toon tiddler titels als links"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Knoppen van knoppenbalk"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Uiterlijk van standaard knop in knoppenbalk:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Met pictogram (icon)"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Met tekst"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Stijl van knoppen in knoppenbalk"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Kies de stijl voor knoppen in knoppenbalk:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Zonder rand"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Vierkante rand"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Ronde rand"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "'Story' view"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Huidige view:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Stijlbladen"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Klap alles uit"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "Dit is de getoonde CSS van de huidige stijlblad-tiddlers gelabeld met <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Herstel"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Thema"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Huidig thema:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Tiddler velden"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "Dit is de complete reeks tiddlervelden in gebruik bij deze wiki (inclusief systeemtiddlers maar exclusief schaduwtiddlers)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Knoppenbalken"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Editor knoppenbalk"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Kies welke knoppen in de editor knoppenbalk getoond worden. Sommige knoppen worden alleen getoond bij een bepaald type tiddler"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Knoppenbalk bij wijzigen"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Kies welke knoppen getoond worden voor tiddlers in wijzigmode"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Kies welke knoppen getoond worden"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Pagina-knoppenbalk"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Kies welke knoppen getoond worden op de pagina-knoppenbalk"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "Knoppenbalk bij weergave"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Kies welke knoppen zichtbaar zijn bij weergave"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Download complete wiki (inclusief documentatie)"
},
"$:/core/readme": {
"title": "$:/core/readme",
"text": "Deze plugin bevat TiddlyWiki's core componenten:\n\n* JavaScript code modules\n* Pictogrammen (icons)\n* Sjablonen om TiddlyWiki's gebruikersinterface te maken\n* British English (en-GB) vertalingen van de vertaalbare core strings\n"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": ""
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": ""
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": ""
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": ""
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": ""
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": ""
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": ""
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": ""
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": ""
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": ""
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": ""
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": ""
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": ""
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": ""
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": ""
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": ""
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": ""
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": ""
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": ""
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": ""
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": ""
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": ""
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": ""
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": ""
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": ""
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": ""
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": ""
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": ""
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": ""
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": ""
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": ""
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "zondag"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "maandag"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "dinsdag"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "woensdag"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "donderdag"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "vrijdag"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "zaterdag"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "januari"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "oktober"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "november"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "december"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "februari"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "maart"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "april"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "mei"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "juni"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "juli"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "augustus"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "september"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "zo"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "ma"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "di"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "wo"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "do"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "vr"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "za"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "jan"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "okt"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "dec"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "feb"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "mrt"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "apr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "mei"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "aug"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "sep"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> dagen vanaf nu"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> uren vanaf nu"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> minuten vanaf nu"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> maanden vanaf nu"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 seconde vanaf nu"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> seconden vanaf nu"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> jaren vanaf nu"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> dagen geleden"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> uren geleden"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> minuten geleden"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> maanden geleden"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 seconde geleden"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> seconden geleden"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> jaren geleden"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "Een sub-operator voor de ''all'' filter operator."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animaties die door de RevealWidget gebruikt kunnen worden."
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "Definieert hoe aanvragen worden gewaarmerkt door de ingebouwde HTTP-server."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "Een 'bitmap'-editor knoppenbalkbewerking."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commando's die onder Node.js gebruikt kunnen worden."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Data die aan `$tw.config` moet worden toegevoegd."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Individuele methodes voor een filter operator."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Globale data die aan `$tw.config` moet worden toegevoegd."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publiceert systeeminformatie via de [[$:/temp/info-plugin]] pseudo-plugin."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Operands voor de ''is'' filter operator."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Algemeen module type voor algemene JavaScript modules."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript macro definities."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "'Parsers' voor verschillende inhoudstypes."
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "Definieert hoe individuele URL-patronen door de ingebouwde HTTP-server worden behandeld."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "'Savers' (opslagmodules) gebruiken verschillende methodes voor het opslaan van bestanden vanuit de browser."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Startup functies."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "'Story views' passen de animatie en het gedrag van 'list' widgets aan."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "Een teksteditor knoppenbalkbewerking."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Zet verschillende inhoudstypes in tiddlers om."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Bepaalt het gedrag van een individueel tiddlerveld."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Voegt methodes aan het `$tw.Tiddler` prototype toe."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Past upgradeverwerking toe op tiddlers gedurende een upgrade / import."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Voegt methodes aan `$tw.utils` toe."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Voegt Node.js-specifieke methodes aan `$tw.utils` toe."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "'Widgets' omvatten DOM 'rendering' en verversing."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Voegt methodes aan `$tw.Wiki` toe."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Individuele 'parser' regels voor de hoofd-WikiText-parser."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Achtergrond alarm"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Rand alarm"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Geaccentueerd alarm"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Gedimde voorgrond alarm"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "Algemene achtergrond"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Citaatbalk"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Standaard knopachtergrond"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Standaard knoprand"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Standaard knop voorgrond"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Achtergrond code"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Rand code"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Voorgrond code"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Indicator voor niet-opgeslagen wijzigingen"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Achtergrond downloadknop"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Voorgrond downloadknop"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Achtergrond 'dragger'"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Voorgrond 'dragger'"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Achtergrond dropdown"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Rand dropdown"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Achtergrond dropdown tab"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Achtergrond dropdown tab voor geselecteerde tabs"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Achtergrond 'dropzone'"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "Achtergrond externe link"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "Achtergrond 'mouseover' externe link"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "Achtergrond bezochte externe link"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "Voorgrond externe link"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "Voorgrond mouseover externe link"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "Voorgrond bezochte externe link"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "Voorgrond algemeen"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Menu bar achtergrond"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Menu bar voorgrond"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Achtergrond berichtenpaneel"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Rand berichtenpaneel"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Voorgrond berichtenpaneel"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Gedimde achtergrond bij modale dialoog"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Achtergrond modale dialoog"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Rand van modale dialoog"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Achtergrond van modale voettekst"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Rand van modale voettekst"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Rand van modale koptekst"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "Voorgrond algemeen gedimd"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Achtergrond melding"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Rand melding"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Achtergrond pagina"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Achtergrond gepreformatteerde code"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Rand gepreformatteerde code"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "Primaire kleur"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "`<select>` element achtergrond"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "`<select>` element tekst"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Voorgrond zijpaneelknop"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Voorgrond knoppen zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Voorgrond mouseover knoppen zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Voorgrond zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Voorgrond schaduw zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Voorgrond gedimd zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Voorgrond gedimd 'mouseover' zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Achtergrond tab zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Achtergrond tab zijpaneel voor geselecteerde tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Rand tab zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Rand tab zijpaneel voor geselecteerde tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Zijpaneel tabscheider"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Voorgrond tab zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Voorgrond tab zijpaneel voor geselecteerde tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Voorgrond tiddler link zijpaneel"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Voorgrond 'mouseover' tiddler link zijpaneel"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Voorgrond van de wikititel"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Voorgrond statische alarmmelding"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Achtergrond tab"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Achtergrond tab voor geselecteerde tabs"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Rand tab"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Rand tab voor geselecteerde tabs"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Tabscheider"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Voorgrond tab"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Voorgrond tab voor geselecteerde tabs"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Rand tabel"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Achtergrond tabel voettekst"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Achtergrond tabelkop"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Achtergrond label"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Voorgrond label"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Achtergrond tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Rand tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Voorgrond knoppen tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Voorgrond mouseover knoppen tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Voorgrond geselecteerde knoppen tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Achtergrond tiddlereditor"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Rand tiddlereditor"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Rand tiddler editor afbeelding"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Achtergrond tiddler editor voor even velden"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Achtergrond tiddler editor voor oneven velden"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Achtergrond tiddler infopaneel"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Rand tiddler infopaneel"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Achtergrond tab tiddler-infopaneel"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Achtergrond tiddlerlink"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Voorgrond tiddlerlink"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Voorgrond tiddlerondertitel"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Voorgrond tiddlertitel"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Voorgrond 'annuleer' knop (knoppenbalk)"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Voorgrond 'sluit' knop (knoppenbalk)"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Voorgrond 'verwijder' knop (knoppenbalk)"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Voorgrond 'opslaan' knop (knoppenbalk)"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Voorgrond 'wijzig' knop (knoppenbalk)"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Voorgrond 'info' knop (knoppenbalk)"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Voorgrond 'nieuwe tiddler' knop (knoppenbalk)"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Voorgrond 'opties' knop (knoppenbalk)"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Voorgrond 'opslaan wiki' knop (knoppenbalk)"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Achtergrond label \"niet gelabeld\""
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Voorgrond zeer gedimd"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "Dit is een externe tiddler die niet in de TiddlyWiki opgeslagen is. Je kan labels en velden wijzigen maar de tekst zelf niet."
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Typ de tekst voor deze tiddler"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "veldenlijst"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Toon veldenlijst"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "verwijder veld"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Verwijder veld"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "+"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Voeg het nieuwe veld aan de tiddler toe"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "Systeemvelden"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "Gebruikersvelden"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "veldnaam"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Voeg nieuw veld toe:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "veldwaarde"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "Dit is een aangepaste schaduwtiddler. Door deze tiddler te verwijderen wordt de standaard schaduwtiddler weer actief"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "Dit is een schaduwtiddler. Elke verandering overschrijft de standaardversie"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "+"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "voeg label toe"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "labelnaam"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "labellijst"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Toon labellijst"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Waarschuwing: vermijd elk karakter van <<bad-chars>> in tiddler titels"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Doeltiddler bestaat al"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "De volgende referenties naar deze tiddler worden niet automatisch bijgewerkt:"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Werk ''<$text text=<<fromTitle>>/>'' naar ''<$text text=<<toTitle>>/>'' bij in de //label// en //lijst// velden van andere tiddlers"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "verwijder inhoudstype"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Verwijder inhoudstype"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "lijst van inhoudstypes"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Toon lijst van inhoudstypes"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "inhoudstype"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type:"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV tiddlers bestand"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON tiddlers bestand"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "Serie tiddlers als statisch HTML bestand"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "Enkele tiddler \".tid\" bestand"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "De volledige URI van een externe afbeeldingstiddler"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "Indien aanwezig, geeft aan dat het tekstveld van de server geladen moet worden"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "De naam van de 'bag' waaruit de tiddler kwam"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "Tekst die op een tab of een knop getoond wordt"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "De CSS-waarde van een kleur gekoppeld aan een tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "De naam van de component die een [[alarmtiddler|AlertMechanism]] veroorzaakt"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "De aanmaakdatum van een tiddler"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "De naam van de maker van de tiddler"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Gebruikt om de tiddler bovenaan bij te houden in een [[geschiedenislijst|HistoryMechanism]]"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "De lijst van plugintitels waarvan een plugin afhankelijk is"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "De beschrijvende tekst voor een plugin of een modale dialoog"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "Voor concepttiddlers; bevat de titel van de te maken tiddler"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "Voor concepttiddlers; bevat de voorgestelde titel van de tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "De voettekst van een 'wizard'"
},
"$:/language/Docs/Fields/hide-body": {
"title": "$:/language/Docs/Fields/hide-body",
"text": "Als 'yes' ingevuld is, wordt de tekst van de tiddler niet weergegeven"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "De titel van de pictogramtiddler die met deze tiddler gekoppeld is"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "Als 'yes' ingevuld is, dient de tiddler als JavaScript-bibliotheek opgeslagen te worden"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "Een geordende lijst van tiddlertitels gekoppeld met een tiddler"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "Indien ingevuld, de titel van de tiddler waarna deze tiddler toegevoegd moet worden in de reeks tiddlertitels"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "Indien ingevuld, de titel van de tiddler waarvoor deze tiddler toegevoegd moet worden in de reeks tiddlertitels, of aan het begin van de reeks als dit veld wel aanwezig maar leeg is"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "De datum en tijd waarop de tiddler voor het laatst werd gewijzigd"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "De persoon die voor het laatst de tiddler gewijzigd heeft"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "De leesbare naam gekoppeld aan een plugin tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "Een numerieke waarde die de prioriteit van een plugintiddler aangeeft"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "Het type van een plugin in een plugin tiddler"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Datum van een TiddlyWiki versie"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "De versie van de tiddler op de server"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "De URL gekoppeld aan de tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "De tekst van de ondertitel van een wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "Een lijst van labels gekoppeld met een tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "De tekst van een tiddler"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "Indien aanwezig wordt verversen van deze tiddler verminderd"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "De unieke naam van een tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Als 'no' ingevuld is, is de tiddler geen link meer in de Inhoudsopgave"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "Inhoudstype van een tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "Versieinformatie van een plugin"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "Alle labels behalve systeemlabels"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "Alle tiddlers behalve systeemtiddlers"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Concepttiddlers"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Ontbrekende tiddlers"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Weestiddlers"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Overschreven schaduwtiddlers"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Onlangs gewijzigde tiddlers inclusief systeemtiddlers"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Onlangs gewijzigde tiddlers"
},
"$:/language/Filters/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "Tiddlers gewijzigf nadat de wiki geleaden werd"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Schaduwtiddlers"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Tiddlers in de 'story river' behalve <$text text=\"$:/AdvancedSearch\"/>"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "Systeemlabels"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "Systeemtiddlers"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Niet-wikitekst tiddlers"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelkom bij ~TiddlyWiki en de ~TiddlyWiki gemeenschap\n\nControleer eerst of je veranderingen op kan slaan voordat je belangrijke informatie aan ~TiddlyWiki toevoegt. Zie https://tiddlywiki.com/#GettingStarted voor details\n\n!! Configureer deze ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nZie het [[bedieningspaneel|$:/ControlPanel]] voor meer opties.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Doorloop automatisch de geconfigureerde commando's",
"text": "Compileert de gespecificeerde 'build targets' voor de actuele wiki. Worden geen 'build targets' gespecificeerd dan worden alle beschikbare 'targets' gecompileerd.\n\n```\n--build <target> [<target> ...]\n```\n\n'Build targets' worden gedefinieerd in het `tiddlywiki.info` bestand van een wiki folder.\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Verwijder het wachtwoord voor volgende versleutelingsoperaties",
"text": "Verwijder het wachtwoord voor volgende versleutelingsoperaties\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"description": "",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<commando> [<argumenten>...]...]\n```\n\nBeschikbare commando's:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nOm gedetaillerde hulp over een commando te krijgen:\n\n```\ntiddlywiki --help <commando>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Verwijdert een groep tiddlers",
"text": "<<.from-version \"5.1.20\">> Verwijdert een gefilterde groep tiddlers.\n\n```\n--deletetiddlers <filter>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Geeft een lijst van de beschikbare edities van TiddlyWiki",
"text": "Geeft een lijst van namen en beschrijvingen van de beschikbare edities. Je kan een nieuwe wiki van een gespecificeerde editie maken met het `--init` commando.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "'Fetch' tiddlers van wiki via URL",
"text": "'Fetch' één of meer bestanden over HTTP/HTTPS en importeer de tiddlers die aan een filter voldoen (en optioneel aanpassen van de titles).\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n```\n\nMet de \"file\" variant wordt alleen een enkel bestand 'gefetched' en de eerste parameter is de URL van het te lezen bestand.\n\nMet de \"files\" variant worden meerdere bestanden 'gefetched' en de eerste parameter is een filter dat een lijst oplevert van URL's van te lezen bestanden. B.v., als een reeks tiddlers gelabeld met \"remote-server\" een veld \"url\" hebben, zal het filter `[tag[remote-server]get[url]]` alle beschikbare URL's ophalen.\n\nDe `<import-filter>` parameter specificeert een filter dat bepaalt welke tiddlers worden geïmporteerd. Zonder filter wordt het standaard `[all[tiddlers]]` gebruikt.\n\nDe `<transform-filter>` parameter specificeert een optioneel filter dat de titels van de geïmporteerde tiddlers aanpast. B.v. `[addprefix[$:/myimports/]]` voegt `$:/myimports/` toe aan het begin van elke titel.\n\nAls het `--fetch` commando voorafgegaan wordt door `--verbose`, wordt voortgangsinformatie gedurende het importeren gegeven.\n\nMerk op dat TiddlyWiki geen oudere versie van een reeds geladen plugin zal 'fetchen'.\n\nHet volgende voorbeeld haalt alle non-system tiddlers op van https://tiddlywiki.com en slaat die op als een JSON bestand:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Toont hulp voor een TiddlyWiki commando",
"text": "Toont hulptekst voor een commando:\n\n```\n--help [<commando>]\n```\n\nwordt de commandonaam weggelaten dan wordt een lijst van beschikbare commando's getoond.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Importeer tiddlers van een bestand",
"text": "Importeer tiddlers van TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` of andere lokale bestanden. De 'deserializer' moet expliciet gespecificeerd worden, anderes dan bij het 'load' commando dat de deserializer afleidt uit de extensie.\n\n```\n--import <bestandspad> <deserializer> [<titel>] [<codering>]\n```\n\nDe deserializers in de core begrijpen:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nStandaard is de bestandsnaam de titel van de geïmporteerde tiddler.\n\nStandaard is de codering \"utf8\", maar dit kan \"base64\" zijn voor importeren van binaire bestanden.\n\nN.B. TiddlyWiki importeert geen oudere versie van een al geladen plugin.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialiseer een nieuwe wiki folder",
"text": "Initialiseer een lege [[WikiFolder|WikiFolders]] met een kopie van de gespecificeerde editie.\n\n```\n--init <editie> [<editie> ...]\n```\n\nB.v.:\n\n```\ntiddlywiki ./MijnWikiFolder --init empty\n```\n\nN.B.:\n\n* De wiki folder wordt zonodig aangemaakt\n* De \"editie\" is standaard \"empty\"\n* Het init commando werkt niet als de wiki folder niet leeg is\n* Het init commando verwijdert alle `includeWikis` definities in het edition's `tiddlywiki.info` bestand\n* Als meerdere edities gespecificeerd worden zullen edities die later geïnitialiseerd worden alle bestanden overschrijven die gedeeld worden met eerdere edities (dus het `tiddlywiki.info` bestand wordt gekopieerd van de laatste editie)\n* `--editions` geeft een lijst met beschikbare edities"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "Geeft een HTTP server interface voor TiddlyWiki",
"text": "Levert een wiki over HTTP uit.\n\nHet 'listen' commando gebruikt NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAlle parameters zijn optioneel met veilige standaardwaarden, en kunnen in willekeurige volgorde gespecificeerd worden. De mogelijke parameters zijn:\n\n* ''host'' - optionele 'hostname' om uit te leveren (standaard \"127.0.0.1\" oftewel \"localhost\")\n* ''path-prefix'' - optioneel voorvoegsel voor paden\n* ''port'' - poortnummer voor communicatie; niet-numerieke waarden worden geïnterpreteerd als een systeem 'environment variable' waaruit het poortnummer geëxtraheerd wordt (standaard \"8080\")\n* ''credentials'' - padnaam naar CSV-bestand met aanmeldgegevens (relatief t.o.v. wiki folder)\n* ''anon-username'' - de gebruikersnaam waarmee wijzigingen gesigneerd worden voor anonieme gebruikers\n* ''username'' - optionele gebruikersnaam voor simpele verificatie\n* ''password'' - optioneel wachtwoord voor simpele verificatie\n* ''authenticated-user-header'' - optionele naam van de 'header' die gebruikt wordt voor vertrouwde verificatie\n* ''readers'' - 'comma separated' lijst van 'principalen' die deze wiki mogen lezen\n* ''writers'' - 'comma separated' lijst van 'principalen' die naar deze wiki mogen schrijven\n* ''csrf-disable'' - zet op \"yes\" om CSRF checks uit te zetten (standaard \"no\")\n* ''root-tiddler'' - de root tiddler (standaard \"$:/core/save/all\")\n* ''root-render-type'' - het inhoudstype waarmee de basistiddler getoond wordt (standaard \"text/plain\")\n* ''root-serve-type'' - het inhoudstype waarmee de basistiddler uitgeleverd wordt (standaard \"text/html\")\n* ''tls-cert'' - padnaam naar bestand met 'key' (relatief t.o.v. wiki folder)\n* ''debug-level'' - optioneel debug level; zet op \"debug\" om details te tonen (standaard \"none\")\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Laadt tiddlers van bestand",
"text": "Laadt tiddlers van 2.x.x TiddlyWiki bestanden (`.html`), `.tiddler`, `.tid`, `.json` of andere bestanden\n\n```\n--load <bestandspad>\n```\n\nOm tiddlers van een versleuteld TiddlyWiki bestand te laden dien je eerst het wachtwoord met het wachtwoordcommando te geven, b.v.:\n\n```\ntiddlywiki ./MijnWiki --password pa55w0rd --load mijn_versleutelde_wiki.html\n```\n\nN.B.: TiddlyWiki laadt geen plugin die ouder is dan de al aanwezige plugin."
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Het maken van de bibliotheekplugin is vereist voor het upgradeproces",
"text": "Maak de `$:/UpgradeLibrary` tiddler voor het upgradeproces.\n\nDe upgradebibliotheek is opgemaakt als een normale plugin tiddler van het plugintype `library`. Het bevat een kopie van iedere plugin, thema of taalpakket dat in de TiddlyWiki5 opslagruimte beschikbaar is.\n\nDit commando is bedoeld voor intern gebruik; het is alleen relevant voor gebruikers die een eigen upgradeprocedure maken.\n\n```\n--makelibrary <titel>\n```\n\nHet titelargument is standaard `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"description": "",
"text": "Geen hulp"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Stelt de basis output folder voor volgende commando's in",
"text": "Stelt de basis output folder voor volgende commando's in. De standaard outputfolder is de `output` subfolder van de editiefolder.\n\n```\n--output <bestandspad>\n```\n\nAls het gespecificeerde bestandspad relatief is zal dit relatief zijn t.o.v. de werkfolder. B.v. `--output .` stelt de outputfolder in als huidige werkfolder.\n\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Vul een wachtwoord in voor volgende versleuteloperarties",
"text": "Vul een wachtwoord in voor volgende versleuteloperarties\n\n```\n--password <wachtwoord>\n```\n\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Rendert individuele tiddlers naar bestanden",
"text": "\nRender (toon) gefilterde individuele tiddlers en sla de resultaten op in de gespecificeerde bestanden.\n\nOptioneel kan de titel van een template tiddler gespecificeerd worden. I.p.v. direct renderen van de tiddler wordt de template tiddler gerenderd met de \"currentTiddler\" variabele gezet als titel van de tiddler die wordt gerenderd.\n\nEen naam en waarde voor een additionele variabele kan optioneel gespecificeerd worden.\n\n```\n--render <tiddler-filter> [<bestandsnaam-filter>] [<render-type>] [<template>] [<naam>] [<waarde>]\n```\n\n* ''tiddler-filter'': Een filter dat bepaalt welke tiddler(s) getoond worden\n* ''bestandsnaam-filter'': Optioneel filter dat tiiddler titels omzet in padnamen. Standaard (geen optioneel filter) `[is[tiddler]addsuffix[.html]]`, hetgeen de onveranderde tiddler titel als bestandsnaam gebruikt\n* ''template'': Optionele template die gebruikt wordt om elke tiddler te renderen\n* ''render-type'': Optioneel render type: `text/html` (standaard) geeft de volledige HTML tekst en `text/plain` geeft de kale tekst (negeert HTML labels en ander niet te printen materiaal)\n* ''naam'': Naam van de optionele variabele\n* ''waarde'': Waarde van de optionele variabele\n\nStandaard is de bestandsnaam relatief t.o.v. de `output` subfolder van de editiefolder. Het `--output` commando kan gebruikt worden om output naar een andere folder te leiden.\n\nN.B.:\n* De output folder wordt niet leeg gemaakt\n* Elke ontbrekende folder in het pad naar de bestandsnaam wordt automatisch aangemaakt\n* In het geval van een tiddler met spaties in de titel, gebruik zowel de aanhalingstekens die vereist zijn voor de commando shell en ook TiddlyWiki's dubbele vierkante haken : `--render \"[[Motovun Jack.jpg]]\"`\n* Het bestandsnaam filter wordt geëvalueerd met de gekozen onderdelen, gezet voor de titel van de te renderen tiddler, waarbij de titel als basis dient om de bestandsnaam te bepalen. B.v. `[encodeuricomponent[]addprefix[static/]]` past URI encoding toe op elke titel, en voegt dan de prefix `static/` toe\n* Het `--render` commando is een uitgebreidere vervanging voor de verouderde `--rendertiddler` en `--rendertiddlers` commando's\n\nVoorbeelden:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- rendert alle non-system tiddlers als bestanden in the subfolder \"tiddlers\" met URL-encoded titels en de extensie HTML"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Render (toon) een individuele tiddler als een gegeven inhoudstype",
"text": "Render (toon) een individuele tiddler als een gegeven inhoudstype (standaard `text/html`) en sla deze op met de gegeven bestandsnaam:\n\n```\n--rendertiddler <titel> <bestandsnaam> [<type>]\n```\n\nStandaard is de bestandsnaam relatief t.o.v. de `output` subfolder van de editiefolder.\n\nOntbrekende folders in het pad worden automatisch aangemaakt."
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Render (toon) een reeks tiddlers die aan een filter voldoen tot separate tiddlers van een gegeven inhoudstype",
"text": "Render (toon) een reeks tiddlers die aan een filter voldoen tot separate tiddlers van een gegeven inhoudstype (standaard `text/html`) en extensie (standaard `.html`).\n\n```\n--rendertiddlers <filter> <template> <bestandspad> [<type>] [<extensie>]\n```\n\nB.v.:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nStandaard is de padnaam relatief t.o.v. de `output` subfolder van de editiefolder. Het `--output` commando kan worden gebruikt om de output naar een andere folder te sturen.\n\nAlle bestanden in de doelfolder worden verwijderd. De doelfolder wordt recursief aangemaakt als hij ontbreekt.\n"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Slaat individuele ruwe tiddlers in bestanden op",
"text": "Slaat gefilterde individuele tiddlers op in gespecificeerde bestanden als ruwe tekst of in binair formaat.\n\n```\n--save <tiddler-filter> <bestandsnaam-filter>\n```\n\n* ''tiddler-filter'': Een filter dat bepaalt welke tiddler(s) opgeslagen moeten worden\n* ''bestandsnaam-filter'': Optioneel filter dat tiddler titels omzet in padnamen. Standaard (geen optioneel filter) `[is[tiddler]]`, hetgeen de onveranderde tiddler titel als bestandsnaam gebruikt\n\nStandaard is de bestandsnaam relatief t.o.v. de `output` subfolder van de editiefolder. Het `--output` commando kan gebruikt worden om output naar een andere folder te leiden.\n\nN.B.:\n* De output folder wordt niet leeg gemaakt\n* Elke ontbrekende folder in het pad naar de bestandsnaam wordt automatisch aangemaakt\n* In het geval van een tiddler met spaties in de titel, gebruik zowel de aanhalingstekens die vereist zijn voor de commando shell en ook TiddlyWiki's dubbele vierkante haken : `--render \"[[Motovun Jack.jpg]]\"`\n* Het bestandsnaam filter wordt geëvalueerd met de gekozen onderdelen, gezet voor de titel van de te tiddler die opgeslagen wordt, waarbij de titel als basis dient om de bestandsnaam te bepalen. B.v. `[encodeuricomponent[]addprefix[static/]]` past URI encoding toe op elke titel, en voegt dan de prefix `static/` toe\n* Het `--save` commando is een uitgebreidere vervanging voor de verouderde `--savetiddler` en `--savetiddlers` commando's\n\nVoorbeelden:\n\n * `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- slaat alle non-system afbeeldingstiddlers als bestanden op in the subfolder \"tiddlers\" met URL-encoded titels"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Slaat een ruwe tiddler op in een bestand",
"text": "Slaat een individuele tiddler op in ruwe tekst of binair formaat met de gegeven bestandsnaam.\n\n```\n--savetiddler <titel> <bestandsnaam>\n```\n\nStandaard is de bestandsnaam relatief t.o.v. de `output` subfolder van de editiefolder. Het `--output` commando kan worden gebruikt om de output naar een andere folder te sturen.\n\nOntbrekende folders in het pad worden automatisch aangemaakt.\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Slaat een groep ruwe tiddlers op in een folder.",
"text": "Slaat een groep tiddlers op in ruwe tekst of binair formaat in de gegeven folder.\n\n```\n--savetiddlers <filter> <padnaam>\n```\n\nStandaard is de padnaam relatief t.o.v. de `output` subfolder van de editiefolder. Het `--output` commando kan worden gebruikt om de output naar een andere folder te sturen.\n\nOntbrekende folders in het pad worden automatisch aangemaakt.\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Slaat een wiki in een nieuwe wiki-folder op",
"text": "<<.from-version \"5.1.20\">> Slaat de wiki als een wiki-folder op inclusief tiddlers, plugins en configuratie:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* De doel wiki folder moet leeg zijn of niet bestaan\n* Het filter geeft aan welke tiddlers opgeslagen worden. Het filter is optioneel; standaard is `[all[tiddlers]]`\n* Plugins uit de officiële plugin-bibliotheek worden vervangen door referenties naar deze plugins in het `tiddlywiki.info` bestand\n* Andere plugins worden uitgepakt in hun eigen folder\n\nKan worden gebruikt om een TiddlyWiki HTML-bestand in een wiki-folder om te zetten:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Geeft een HTTP serverinterface aan TiddlyWiki",
"text": "TiddlyWiki5 bevat een simpele server. Hoewel deze server compatibel is met TiddlyWeb, ontbreken zaken voor robuust internetgebruik.\n\nDe server kan specifieke tiddlers in het gegeven formaat tonen. Daarnaast kunnen tiddlers in JSON-formaat uitgeleverd worden.\nDe ondersteunde HTTP-functies zijn: `GET`, `PUT` en `DELETE`.\n\n```\n--server <poort> <roottiddler> <rendertype> <servetype> <gebruikersnaam> <wachtwoord> <host> <padprefix>\n```\n\nDe parameters zijn:\n\n* ''poort'' - poortnummer voor communicatie (standaard \"8080\")\n* ''roottiddler'' - de tiddler die als basistiddler gebruikt wordt (standaard \"$:/core/save/all\") \n* ''rendertype'' - het inhoudstype waarmee de basistiddler getoond wordt (standaard \"text/plain\")\n* ''servetype'' - het inhoudstype waarmee de basistiddler uitgeleverd wordt (standaard \"text/html\")\n* ''gebruikersnaam'' - de standaard gebruikersnaam waarmee wijzigingen gesigneerd worden\n* ''wachtwoord'' - optioneel wachtwoord voor simpele verificatie\n* ''host'' - optionele hostnaam waarmee uitgeleverd wordt (standaard \"127.0.0.1\" oftewel \"localhost\")\n* ''padprefix'' - optioneel voorvoegsel voor paden\n\nAls een wachtwoord gegeven wordt zal de browser om gebruikersnaam en wachtwoord vragen. N.B. het wachtwoord wordt als platte tekst verzonden en dit is dus niet geschikt voor algemeen internetgebruik.\n\nB.v.:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nDe gebruikersnaam en het wachtwoord kunnen als lege \"strings\" (\"\") gespecificeerd worden als je \"hostnaam\" of \"padprefix\" wil geven zonder wachtwoord:\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nOm meerdere TiddlyWiki servers tegelijkertijd te gebruiken dien je elke server op een aparte poort te zetten.\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Maakt externe tiddlers voor gebruik gereed",
"text": "//N.B. Dit commando is experimenteel en kan veranderen of vervangen worden//\n\nZet het gespecificeerde veld van een groep tiddlers via een filter. Een sjabloon wordt \"gewikificeerd\" (wikified) en het resultaat aan het veld toegekend. De `currentTiddler` variabele wordt aan de respectievelijke tiddler toegekend.\n\n```\n--setfield <filter> <veldnaam> <templatetitel> <rendertype>\n```\n\nDe parameters zijn:\n\n* ''filter'' - filter dat de tiddlers selecteert\n* ''veldnaam'' - het betreffende veld (standaard \"text\")\n* ''templatetitel'' - de tiddler die in het betreffende veld gewikificeerd moet worden. In geval van een leeg of ontbrekend veld wordt het veld verwijderd\n* ''rendertype'' - het teksttype om te renderen (tonen) - standaard \"text/plain\"; \"text/html\" kan worden gebruikt om HTML-elementen te kunnen gebruiken\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Extraheer de 'payload' tiddlers van een plugin",
"text": "Extraheer de 'payload' tiddlers van een plugin en maak er gewone tiddlers van:```--unpackplugin <titel>```"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Activeert extra tekstoutput",
"text": "Activeert extra tekstoutput, zinvol voor debuggen\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Toont het versienummer van TiddlyWiki",
"text": "Toont het versienummer van TiddlyWiki\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "De volgende tiddlers werden geïmporteerd:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Annuleer"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "Deze tiddlers staan klaar voor import:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Importeer"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Voorvertoning:"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Verschil"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Verschil (Velden)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Velden"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Tekst"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Tekst (Ruw)"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Selecteer"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Status"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Titel"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "Geblokkeerde plugin (incompatibel of verouderd)"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "Geblokkeerde plugin (te importeren <<incoming>> ouder dan bestaande <<existing>>)"
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "Plugin opgewaardeerd van <<incoming>> naar <<upgraded>>"
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "Geblokkeerde tijdelijke statustiddler"
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "Je staat op het punt om om een tiddler te importeren die een 'core module' tiddler zal overschrijven. Dit wordt niet aanbevolen daar het systeem instabiel kan worden"
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "Geblokkeerde systeemtiddler"
},
"$:/language/Import/Upgrader/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "'Core module' tiddler"
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Gemigreerde thema-aanpassing van <$text text=<<from>>/>"
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "Het lijkt erop dat je probeert een ~TiddlyWiki Classic plugin te laden. [[Deze plugins werken niet met ~TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. Gedetecteerde ~TiddlyWiki Classic plugins:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "Deze tiddler bevat binaire data"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "Deze tiddler is in TiddlyWiki Classic wiki tekstformaat geschreven dat niet geheel compatibel is met TiddlyWiki versie 5. Zie https://tiddlywiki.com/static/Upgrading.html voor meer details."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "upgrade"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "sluit alle"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Wil je gemaakte wijzigingen aan de tiddler \"<$text text=<<title>>/>\" annuleren?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Wil je de tiddler \"<$text text=<<title>>/>\" verwijderen?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "Je staat op het punt een schaduwtiddler te wijzigen. Toekomstige automatische veranderingen (upgrades) zijn dan niet mogelijk. Wil je \"<$text text=<<title>>/>\" wijzigen?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Wil je de tiddler \"<$text text=<<title>>/>\" overschrijven?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "aantal"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "Nieuwe tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> verschillen"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "'Drop' hier (of klik escape om te annuleren)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Annuleer"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Wil je het wachtwoord verwijderen? Dan wordt de wiki onversleuteld opgeslagen."
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Wachtwoord"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Wachtwoorden komen niet overeen"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Vul een nieuw wachtwoord in voor deze TiddlyWiki"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Herhaal wachtwoord"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Vul wachtwoord in"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Gebruikersnaam"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Fout"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "Bestand gewijzigd op server"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Filterfout"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Syntaxfout in filter expressie"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "Filterfout: Onbekende operand voor het 'is' filter"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "Fout bij laden van de pluginbibliotheek"
},
"$:/language/Error/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Network fout''</h2>De verbinding met de server lijkt verbroken. Mogelijk een probleem met de netwerkverbinding. Herstel de netwerkverbinding voordat verder wordt gegaan.<br><br>''Niet opgeslagen veranderingen worden gesynchroniseerd als de verbinding hersteld is''.`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Recursieve transclusiefout in 'transclude' widget"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Fout bij ophalen van de 'skinny' tiddlerlijst"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Fout bij opslaan naar TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Fout bij opslaan"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest foutcode"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "Er is een probleem. Herstart TiddlyWiki door je browser te verversen"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Interne JavaScript fout"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Illegale lettertekens in veldnaam \"<$text text=<<fieldName>>/>\". Velden kunnen alleen kleine letters, cijfers en de lettertekens liggend streepje (`_`), koppelteken (`-`) en punt (`.`)"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Er wordt externe tekst geladen van ''<$text text={{!!_canonical_uri}}/>''</p><p>Als deze mededeling niet verdwijnt ondersteunt de gebruikte browser in deze configuratie mogelijk geen externe tekst. Zie https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Login bij TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(geen)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filter d.m.v. label:"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Omgekeerde volgorde"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Zoek"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Zoek:"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "labels"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Toon:"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Sorteer op:"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Kleur"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Velden"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Pictogram (icon)"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(geen)"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Ruwe tekst"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Labels"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Gereedschappen"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "'Wikified' tekst"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Ontbrekende tiddler \"<$text text=<<currentTiddler>>/>\" - klik {{||$:/core/ui/Buttons/edit}} om hem aan te maken"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "Nee"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Officiële ~TiddlyWiki pluginbibliotheek"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "De officiële ~TiddlyWiki pluginbibliotheek op tiddlywiki.com. Plugins, thema's en taalpaketten worden door het core team onderhouden."
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Sla op {{$:/core/ui/Buttons/save-wiki}} en ververs {{$:/core/ui/Buttons/refresh}} om wijzigingen aan plugins door te voeren"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DD MMM YYYY"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "Dit is een systeem tiddler"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Inclusief systeem tiddlers"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Kleur"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Aantal"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Pictogram (icon)"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "Geen"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Label"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DD MMM YYYY om hh12:0mmam"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "Er zijn niet-opgeslagen veranderingen in TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Ja"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"type": "text/vnd.tiddlywiki",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Je browser ondersteunt alleen handmatig opslaan.\n\nOm je gewijzigde wiki op te slaan klik rechts op de downloadlink hieronder en kies \"Bestand downloaden\" of \"Doel opslaan als\" en kies dan een folder en bestandsnaam.\n\n//Je kan het iets versnellen door op de link te klikken met de control toets (Windows) of de opties/alt toets (Mac OS X) ingedrukt. Er wordt dan niet om folder- of bestandsnaam gevraagd, maar de browser zal een niet herkenbare naam geven - je dient het bestand te hernoemen met een `.html` extensie alvorens je iets zinnigs met het bestand kan doen.//\n\nBij smartphones die downloaden niet ondersteunen, kan je een bladwijzer van de link maken en dan je favorieten synchroniseren met een desktop-PC waarop de wiki normaal opgeslagen kan worden.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"type": "text/vnd.tiddlywiki",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Je veranderingen aan deze wiki dienen als een ~TiddlyWiki HTML bestand opgeslagen te worden.\n\n!!! Desktop browsers\n\n# Kies ''Opslaan Als'' van het ''Bestand'' menu\n# Kies een bestandsnaam en locatie\n#* Bij sommige browsers moet het formaat expliciet opgegeven worden als ''Webpage, alleen HTML'' o.i.d.\n# Sluit de browsertab\n\n!!! Smartphone browsers\n\n# Maak een favoriet naar deze pagina\n#* Bij gebruik van iCloud of Google Sync worden favorieten automatisch met de desktop-PC gesynchroniseerd en kan je te werk gaan als boven beschreven\n# Sluit de browsertab\n\n//Wordt de favoriet in mobile Safari geopend dan zie je de melding weer. Klik ''sluit'' om verder te gaan//\n"
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"text": "Journaal"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "YYYY MMM DD"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "Kopie naar klembord mislukt!"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Gekopieerd!"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "Wiki opgeslagen"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "Begonnen met wiki op te slaan"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "Lijst"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filter"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Zoek via een [[filter expressie|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> resultaten</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> resultaten</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "Alle resultaten:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Titel resultaten:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Zoek"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Zoektekst te kort"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Schaduwen"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Zoek schaduwtiddlers"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> resultaten</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standaard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Zoek (in) standaard tiddlers"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> resultaten</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "Systeem"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Zoek systeemtiddlers"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> resultaten</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "Alle"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Inhoud"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Concepten"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Verkenner"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Ontbrekend"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "Meer"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Open"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Verweesd"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Recent"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Schaduw"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "Systeem"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Labels"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "niet gelabeld"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Gereedschap"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "een niet-lineair persoonlijk webnotitieboek"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "Mijn ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Lijst van tiddlers met label ...",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Macro definitie",
"text": "\\define macroName(param1:\"default value\",param2)\nTekst van de macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Tabel met 4 kolommen en 3 rijen",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!Een | | | | |\n|!Twee | | | | |\n|!Drie | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Inhoudsopgave",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Afmetingen"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Lettergrootte voor tiddlertekst"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Regelhoogte voor tiddlertekst"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Lettergrootte"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Regelhoogte"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Breekpunt voor zijpaneel"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "de minimale paginabreedte waarbij de 'story river'<br>en het zijpaneel naast elkaar getoond worden"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Breedte zijpaneel"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "de breedte van het zijpaneel in 'fluid-fixed' layout"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Linker story-positie"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "hoe ver de linkermarge van de 'story river'<br>(tiddler oppervlak) is van de linkerzijde van de pagina"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Rechter story-positie"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "hoe ver de linkermarge van het zijpaneel<br>is van de linkerkant van de pagina"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Bovenkant story"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "hoe ver de bovenmarge van de 'story river'<br>is van de bovenkant van de pagina"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Story-breedte"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "de totale breedte van de 'story river'"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Tiddler-breedte"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "binnen de 'story river'"
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Opties"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Breek lange regels in code-blokken af ('word wrap')"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Zijpaneel layout"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "'Fixed story', 'fluid' zijpaneel"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "'Fluid' story, 'fixed' zijpaneel"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Vaststaande ('sticky') titels"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Doet tiddler-titels vaststaan ('stick') aan de bovenkant van het browserscherm. Waarschuwing: Werkt niet bij alle browsers"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Instellingen"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Pagina achtergrond afbeelding"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Binding van pagina achtergrond afbeelding"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Vast aan het scherm"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "'Scroll' met tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Pagina achtergrond afbeeldingsmaat"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "'Contain'"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "'Cover'"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Lettertype voor code"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Lettertype voor editor"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Lettertype"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Thema 'tweaks'"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "Je kan bepaalde aspecten van het ''Vanilla'' thema 'tweaken'"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Geavanceerd"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "niets"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Plugin details"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "Deze plugin bevat de volgende schaduwtiddlers:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Schaduwstatus"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "De tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is geen schaduwtiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "Overschreven door een gewone tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "De tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is een schaduwtiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "Gedefinieerd in de plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Velden"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "Lijst"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "Deze tiddler heeft geen lijst"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Genoemd"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "Deze tiddler wordt niet door andere tiddlers genoemd"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "Referenties"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "Er zijn geen tiddlers aan deze tiddler gelinkt"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "Gelabeld"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "Er zijn geen tiddlers gelabeld met deze tiddler"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "Gereedschap"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "JavaScript code",
"name": "application/javascript",
"group": "Ontwikkelaar"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON data",
"name": "application/json",
"group": "Ontwikkelaar"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Data 'dictionary'",
"name": "application/x-tiddler-dictionary",
"group": "Ontwikkelaar"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF afbeelding",
"name": "image/gif",
"group": "Afbeelding"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG afbeelding",
"name": "image/jpeg",
"group": "Afbeelding"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG afbeelding",
"name": "image/png",
"group": "Afbeelding"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Structured Vector Graphics (SVG) afbeelding",
"name": "image/svg+xml",
"group": "Afbeelding"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "ICO pictogram (icon)",
"name": "image/x-icon",
"group": "Afbeelding"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Statisch stijlblad",
"name": "text/css",
"group": "Ontwikkelaar"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML opmaak",
"name": "text/html",
"group": "Tekst"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Platte text",
"name": "text/plain",
"group": "Tekst"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "Tekst"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Tekst"
},
"$:/languages/nl-NL/icon": {
"title": "$:/languages/nl-NL/icon",
"type": "image/svg+xml",
"text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"900\" height=\"600\" viewBox=\"0 0 9 6\">\n<rect fill=\"#21468B\"\twidth=\"9\" height=\"6\"/>\n<rect fill=\"#FFF\" width=\"9\" height=\"4\"/>\n<rect fill=\"#AE1C28\"\twidth=\"9\" height=\"2\"/>\n</svg>"
}
}
}
: Shades of blue
blue11: #0044BB
blue10: #1755C1
blue09: #2E66C7
blue08: #4677CE
blue07: #5D88D4
blue06: #7499DA
blue05: #8BAAE0
blue04: #A2BBE6
blue03: #B9CCEC
blue02: #D1DDF3
blue01: #E8EEF9
: Other colors
BROWN: #884411
alert-background: #FFE476
alert-border: #B99E2F
alert-highlight: #881122
alert-muted-foreground: #B99E2F
background: #FFFFFF
blockquote-bar: <<colour muted-foreground>>
button-background:
button-foreground:
button-border:
code-background: #F7F7F9
code-border: #E1E1E8
code-foreground: #DD1144
dirty-indicator: #FF0000
download-background: #34C734
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #FFFFFF
dropdown-tab-background: #ECECEC
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #551A8B
external-link-foreground: #0000EE
foreground: #0044BB
message-background: #ECF2FF
message-border: #CFD6E6
message-foreground: #547599
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #999999
modal-footer-background: #F5F5F5
modal-footer-border: #DDDDDD
modal-header-border: #EEEEEE
muted-foreground: #B9CCEC
notification-background: #FFFFDD
notification-border: #999999
page-background: #FAFBFD
pre-background: #F5F5F5
pre-border: #CCCCCC
primary: #2E66C7
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: <<colour foreground>>
sidebar-controls-foreground: #D1DDF3
sidebar-foreground-shadow: rgba(255,255,255, 0.8)
sidebar-foreground: #5D88D4
sidebar-muted-foreground-hover: <<colour foreground>>
sidebar-muted-foreground: #B9CCEC
sidebar-tab-background-selected: #D1DDF3
sidebar-tab-background: #FFFFFF
sidebar-tab-border-selected: <<colour tab-border-selected>>
sidebar-tab-border: <<colour tab-border>>
sidebar-tab-divider: #D1DDF3
sidebar-tab-foreground-selected:
sidebar-tab-foreground: <<colour tab-foreground>>
sidebar-tiddler-link-foreground-hover: <<colour foreground>>
sidebar-tiddler-link-foreground: #5D88D4
site-title-foreground: <<colour tiddler-title-foreground>>
static-alert-foreground: #AAAAAA
tab-background-selected: #D1DDF3
tab-background: #FFFFFF
tab-border-selected: #A2BBE6
tab-border: #D1DDF3
tab-divider: #D1DDF3
tab-foreground-selected: <<colour foreground>>
tab-foreground: <<colour foreground>>
table-border: #B9CCEC
table-footer-background: #D1DDF3
table-header-background: #E8EEF9
tag-background: #7499DA
tag-foreground: #FFFFFF
tiddler-background: #FEFEFE
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: <<colour foreground>>
tiddler-controls-foreground-selected: <<colour foreground>>
tiddler-controls-foreground: #D1DDF3
tiddler-editor-background: #F8F8F8
tiddler-editor-border-image: #FFFFFF
tiddler-editor-border: #CCCCCC
tiddler-editor-fields-even: #E0E8E0
tiddler-editor-fields-odd: #F0F4F0
tiddler-info-background: #F8F8F8
tiddler-info-border: #D1DDF3
tiddler-info-tab-background: #D1DDF3
tiddler-link-background: <<colour background>>
tiddler-link-foreground: #006DEC
tiddler-subtitle-foreground: #C0C0C0
tiddler-title-foreground: <<colour foreground>>
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #7499DA
very-muted-foreground: #888888
{
"tiddlers": {
"$:/plugins/ebalster/condition/license": {
"text": "!!The MIT License (MIT)\n\nCopyright (c) 2017 Evan Balster\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/ebalster/condition/license",
"tags": "",
"modified": "20171230044506791",
"created": "20171230044445712",
"caption": "license"
},
"$:/plugins/ebalster/condition/readme": {
"text": "The ''Condition'' plugin for TiddlyWiki, version {{$:/plugins/ebalster/condition!!version}}, by Evan Balster.\n\nThis plugin defines widgets that will either show or hide their contents depending on a condition.\n\nUnlike the closely-related reveal widget, condition widgets do //not// retain their content, and do not support animation or popups. Conditions may be based on variables, macros or filtered attributes. It can also be used with the [[Formula Plugin]].\n\n\n!!Truthiness\n\nTruthiness is a simple rule for whether a value triggers an \"if\" widget or not. Values are \"truthy\" if they do not match any of the \"falsy\" values below:\n\n* The number `0`, including any decimal point.\n* `false`\n* `undefined`\n* `null`\n* Blank (no text)\n\nThis matching is case-insensitive, and any whitespace before or after the value will be ignored.\n\n\n!!If Widget\n\nThe `$if` widget will show its content based on whether a value is \"truthy\", or matches another value.\n\n|Attribute|Meaning|h\n|value|''Required.'' Content is shown if `value` is truthy.|\n|match|Optional. If present, `value` and `match` must equal //exactly// for content to be shown. (Truthiness doesn't matter.)|\n|not|Inverts the condition, so the value will be shown if it would be hidden and vice versa.|\n\nFor example,\n\n```\n<$if not value={{$:/StoryList}}>\nNo tiddlers are open right now!\n</$if>\n```\n\n\n!!Else Widget\n\nThe `$else` widget has no attributes. It must be placed after one of the conditional widgets listed below, and will only show its contents if the preceding widget is //not// showing its content.\n\n|After...|Show contents when...|h\n|`$if`<br/>`$else-if`|None of the previous if-conditions was true.|\n|`$list`|The list is empty. `$else` can be used instead of emptyMessage.|\n|`$reveal`|The contents of the reveal widget are hidden.|\n|`$else`|An else after an else will //never// be shown.|\n\nFor example:\n\n```\n<$if value={{{[tag[Note]]}}}>\n!!My notes:\n <$list filter=\"[tag[Note]]\">\n - {{!!title}}\n </$list>\n</$if>\n<$else>\n!!I don't have any notes...\n</$else>\n```\n\nNote that the else widget can't have any blank lines between it and the preceding widget.\n\n\n!!Else-If Widget\n\nThe `$else-if` widget is a combination of the `$else` and `$if` widgets, and has the same attributes as the `$if` widget. Its content will only be displayed if the previous widget is //not// showing its content //and// the `$if`-condition is true.\n\n`$else-if` widgets can be used to perform a \"chain\" of tests, showing some text based on the first condition that passes (or fails). For example:\n\n```\nSomething approaches...\n\n<$if value={{!!animal}} match=cat> Meow! </$if>\n<$else-if value={{!!animal}} match=dog> Bark! </$else-if>\n<$else-if value={{!!animal}} match=bird> Tweet! </$else-if>\n<$else> This isn't like any animal you've seen before. </$else>\n```\n\n\n!!Help & Support\n\nThis plugin is a work in progress; seek help with it on the TiddlyWiki Google Group: https://groups.google.com/forum/#!forum/tiddlywiki\n\nOr E-mail me directly: [[evan@imitone.com|mailto://evan@imitone.com]]",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/ebalster/condition/readme",
"tags": "",
"modified": "20171230052355854",
"created": "20171230044517252",
"caption": "readme"
},
"$:/plugins/ebalster/condition/widgets/condition.js": {
"text": "/*\\\ntitle: $:/plugins/ebalster/condition/widgets/condition.js\ntype: application/javascript\nmodule-type: widget\n\nBase class for condition widgets.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ConditionWidget = function(parseTreeNode,options) {\n\tif(arguments.length > 0) {\n\t\tthis.initialise(parseTreeNode,options);\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nConditionWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nConditionWidget.prototype.render = function(parent,nextSibling) {\n this.parentDomNode = parent;\n this.computeAttributes();\n this.execute();\n this.rerender(parent,nextSibling);\n};\n\nConditionWidget.prototype.rerender = function(parent,nextSibling) {\n\tthis.removeChildDomNodes();\n\tif (this.conditionError) {\n\t\t// Show an error.\n\t\tvar parseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t}, children: [\n\t\t\t{type: \"text\", text: this.conditionError}\n\t\t]}];\n\t\tthis.makeChildWidgets(parseTreeNodes);\n\t}\n\telse if (this.isOpen) {\n\t\t// Construct and render the child widgets.\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t}\n\telse {\n\t\t// Destroy the child widgets.\n\t\tthis.children = [];\n\t}\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget (default behavior)\n*/\nConditionWidget.prototype.execute = function() {\n\tthis.executeIf(\"$condition\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nConditionWidget.prototype.refresh = function(changedTiddlers) {\n\tvar currentlyOpen = this.isOpen;\n\tvar changedAttributes = this.computeAttributes();\n\tthis.execute();\n\tif(this.isOpen !== currentlyOpen) {\n\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\tthis.rerender(this.parentDomNode,nextSibling);\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nUtility: Is a value \"truthy\"?\n*/\nConditionWidget.prototype.valueIsTruthy = function(value) {\n\t// It's truthy if it's not falsy, ie, undefined, false, blank or zero.\n\treturn !(/^\\s*(undefined|false|null|0+|0*\\.0+|0+\\.0*|)\\s*$/i.test(value));\n};\n\n/*\nUtility: Find a preceding non-text widget for an \"else\" widget.\n*/\nConditionWidget.prototype.findPrecedingConditionWidget = function() {\n\tvar siblings = (this.parentWidget ? this.parentWidget.children : null);\n\tvar sibling;\n\tif (siblings) {\n\t\tfor (var i = siblings.indexOf(this)-1; i >= 0; --i) {\n\t\t\tsibling = siblings[i];\n\t\t\tif (sibling.parseTreeNode.type == \"text\") continue;\n\t\t\tif (sibling.isOpen != null || sibling.list != null) return sibling;\n\t\t\treturn null;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nUtility: Test if another widget triggers an \"else\"; ie, false conditions, closed reveals, empty lists.\n*/\nConditionWidget.prototype.widgetTriggersElse = function(widget) {\n\t// Condition widgets\n\tif (widget.triggerElse != null) return widget.triggerElse;\n\t// Reveal widget\n\tif (widget.isOpen != null) return !widget.isOpen;\n\t// List widget\n\tif (widget.list != null) return (widget.list instanceof Array) && widget.list.length == 0;\n};\n\n/*\nUtility: Execute as an \"else\" condition, computing isOpen and conditionError accordingly.\n*/\nConditionWidget.prototype.executeElse = function(widgetName) {\n\tthis.isOpen = false;\n\tthis.conditionError = null;\n\tthis.triggerElse = false;\n\tvar predicate = this.findPrecedingConditionWidget();\n\tif (!predicate) {\n\t\tthis.conditionError = (widgetName||\"$else\") + \" widget must follow $if, $else-if, $reveal or $list.\";\n\t\treturn;\n\t}\n\tthis.isOpen = this.widgetTriggersElse(predicate);\n};\n\n/*\nUtility: Execute as an \"if\" condition, computing isOpen and conditionError accordingly.\n*/\nConditionWidget.prototype.executeIf = function(widgetName) {\n\tthis.isOpen = false;\n\tthis.conditionError = null;\n\tthis.triggerElse = false;\n // Re-check our \"if\" condition.\n\tvar value = this.getAttribute(\"value\");\n\tvar match = this.getAttribute(\"match\");\n\tif (value == null) {\n\t\tthis.conditionError = (widgetName||\"$condition\") + \" widget requires a 'value' attribute.\";\n\t\treturn;\n\t}\n\telse if (match == null) {\n\t\t// Open if the value is truthy.\n\t\tthis.isOpen = this.valueIsTruthy(value);\n\t}\n\telse {\n\t\tthis.isOpen = (value == match);\n\t}\n\tif (this.getAttribute(\"not\")) {\n\t\tthis.isOpen = !this.isOpen;\n\t}\n\tthis.triggerElse = !this.isOpen;\n};\n\nexports.condition = ConditionWidget;\n\n})();",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/plugins/ebalster/condition/widgets/condition.js",
"tags": "",
"module-type": "widget",
"modified": "20171230024403999",
"description": "As the $vars widget, but each attribute is interpreted as a formula.",
"created": "20171230024342810"
},
"$:/plugins/ebalster/condition/widgets/elif.js": {
"text": "/*\\\ntitle: $:/plugins/ebalster/condition/widgets/if.js\ntype: application/javascript\nmodule-type: widget\n\nIf-condition widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ConditionWidget = require(\"$:/plugins/ebalster/condition/widgets/condition.js\").condition;\n\nvar ElifWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElifWidget.prototype = new ConditionWidget();\n\n/*\nCompute the internal state of the widget\n*/\nElifWidget.prototype.execute = function() {\n\tthis.executeElse(\"$else-if\");\n\tif (this.isOpen) this.executeIf(\"$if\");\n};\n\nexports[\"else-if\"] = ElifWidget;\n\n})();",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/plugins/ebalster/condition/widgets/elif.js",
"tags": "",
"module-type": "widget",
"modified": "20171230040911552",
"description": "As the $vars widget, but each attribute is interpreted as a formula.",
"created": "20171230040903429"
},
"$:/plugins/ebalster/condition/widgets/else.js": {
"text": "/*\\\ntitle: $:/plugins/ebalster/condition/widgets/if.js\ntype: application/javascript\nmodule-type: widget\n\nIf-condition widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ConditionWidget = require(\"$:/plugins/ebalster/condition/widgets/condition.js\").condition;\n\nvar ElseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElseWidget.prototype = new ConditionWidget();\n\n/*\nCompute the internal state of the widget\n*/\nElseWidget.prototype.execute = function() {\n\t// Execute as an else condition.\n\tthis.executeElse(\"$else\");\n};\n\nexports.else = ElseWidget;\n\n})();",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/plugins/ebalster/condition/widgets/else.js",
"tags": "",
"module-type": "widget",
"modified": "20171230025331858",
"description": "As the $vars widget, but each attribute is interpreted as a formula.",
"created": "20171230025320439"
},
"$:/plugins/ebalster/condition/widgets/if.js": {
"text": "/*\\\ntitle: $:/plugins/ebalster/condition/widgets/if.js\ntype: application/javascript\nmodule-type: widget\n\nIf-condition widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ConditionWidget = require(\"$:/plugins/ebalster/condition/widgets/condition.js\").condition;\n\nvar IfWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nIfWidget.prototype = new ConditionWidget();\n\n/*\nCompute the internal state of the widget\n*/\nIfWidget.prototype.execute = function() {\n\tthis.executeIf(\"$if\");\n};\n\nexports.if = IfWidget;\n\n})();",
"bag": "default",
"revision": "0",
"type": "application/javascript",
"title": "$:/plugins/ebalster/condition/widgets/if.js",
"tags": "",
"module-type": "widget",
"modified": "20171230004310622",
"description": "As the $vars widget, but each attribute is interpreted as a formula.",
"created": "20171230002741585"
},
"$:/plugins/ebalster/condition/changelog": {
"created": "20171230164920491",
"text": "!!Version 0.1.1 — December 30, 2017\n\n* Fix an error when refreshing the condition widget.\n* Fix \"match\" attribute not working as expected.\n\n\n!!Version 0.1.0 — December 29, 2017\n\n* Initial implementation.\n* Includes $if, $else, $else-if\n* Common code in condition.js",
"title": "$:/plugins/ebalster/condition/changelog",
"tags": "",
"modified": "20171230165117169"
},
"$:/plugins/ebalster/condition/repack": {
"created": "20171230044112191",
"text": "Repacking command (use this in the browser console to repack the plugin)\n\n<pre><code>$tw.utils.repackPlugin(\"$:/plugins/ebalster/condition\", (= \"[\" & textjoin(\",\",\n TRUE,\n [prefix[$:/plugins/ebalster/condition/]addprefix[\"]addsuffix[\"]]) & \"]\" =));\n</code></pre>\n\nVersion: <$edit-text tiddler=\"$:/plugins/ebalster/condition\" field=\"version\" />",
"bag": "default",
"revision": "0",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/ebalster/condition/repack",
"tags": "",
"modified": "20171230165309317"
}
}
}
{
"tiddlers": {
"$:/core/modules/editor-operations/text/tablehelper.js": {
"text": "/*\\\ntitle: $:/core/modules/editor-operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"tablehelper\"] = function(event,operation) {\nvar listtext=operation.selection;\nvar target =\"$:/config/WikiParserRules/Inline/commaconvert\";\nvar commasr = $tw.wiki.getTiddlerText(target);\n\nvar target =\"$:/config/WikiParserRules/Inline/centertable\";\nvar centeroption = $tw.wiki.getTiddlerText(target);\n\nvar leadpipe=\"|\";\nvar midpipe=\"|\";\nvar finalpipe=\"|\";\n\nif(centeroption==\"enable\") {\nvar leadpipe=\"| \";\nvar midpipe=\" | \";\nvar finalpipe=\" |\";\n}\n\n// strip tabs at the end of a line\n listtext= listtext.replace(/\\t$/gm,'');\n\n// convert tab to a pipe\n listtext=listtext.replace(/\\t/gm,midpipe);\n// convert start of line to pipe\n listtext=listtext.replace(/^/gm,leadpipe);\n\n if (commasr == \"enable\") {\n listtext=listtext.replace(/,/gm,midpipe);\n } else {\n }\n\n// convert new line to pipe newline\n listtext=listtext.replace(/\\n/gm,finalpipe+'\\n');\n// convert quote to space\n listtext=listtext.replace(/\"/gm,'');\n// convert stray last pipe\n listtext=listtext.replace(/\\|\\n\\|$/gm,'|\\n');\n//make last character a pipe\n listtext=listtext.replace(/\\b$/gm,'|');\n//make first line a header\n listtext=listtext.replace(/\\|$/m,'|h');\noperation.replacement=listtext;\n\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"created": "20160327155515041",
"modified": "20160328020840295",
"module-type": "texteditoroperation",
"title": "$:/core/modules/editor-operations/text/tablehelper.js",
"type": "application/javascript"
},
"$:/core/ui/ControlPanel/Settings/TableHelper": {
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n<<lingo TableHelper/Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/centertable\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/centertable\"><<lingo TableHelper/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/commaconvert\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/commaconvert\"><<lingo CommaConvert/Description>></$link> </$checkbox>\n\n",
"caption": "{{$:/language/ControlPanel/Settings/TableHelper/Caption}}",
"created": "20160216162111127",
"creator": "Stephen",
"modified": "20160310033707646",
"modifier": "Stephen",
"tags": "$:/tags/ControlPanel/Settings",
"title": "$:/core/ui/ControlPanel/Settings/TableHelper"
},
"$:/core/ui/TextEditorToolbar/tablehelper": {
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"tablehelper\"\n/>\n",
"caption": "{{$:/language/Buttons/TableHelper/Caption}}",
"condition": "[all[current]!is[image]]",
"created": "20160315202727813",
"creator": "Stephen",
"description": "{{$:/language/Buttons/TableHelper/Hint}}",
"icon": "$:/core/images/format-table",
"list-after": "$:/core/ui/TextEditorToolbar/email",
"modified": "20160505121459274",
"modifier": "Stephen",
"shortcuts": "((tablehelper))",
"tags": "$:/tags/EditorToolbar",
"title": "$:/core/ui/TextEditorToolbar/tablehelper"
},
"$:/language/Buttons/TableHelper/Caption": {
"text": "table helper",
"created": "20150202191228672",
"creator": "Stephen",
"modified": "20150204205416048",
"modifier": "Stephen",
"tags": "ske",
"title": "$:/language/Buttons/TableHelper/Caption"
},
"$:/language/Buttons/TableHelper/Hint": {
"text": "convert an imported Excel spreadsheet into a table",
"created": "20150129183243342",
"creator": "Stephen",
"modified": "20150204205437279",
"modifier": "Stephen",
"tags": "ske",
"title": "$:/language/Buttons/TableHelper/Hint"
},
"$:/language/ControlPanel/Settings/TableHelper/Hint": {
"text": "You can control how the ~TableHelper converts material to tables. ",
"created": "20160216163511744",
"creator": "Stephen",
"modified": "20160219140701012",
"modifier": "Stephen",
"tags": "",
"title": "$:/language/ControlPanel/Settings/TableHelper/Hint"
},
"$:/language/ControlPanel/Settings/TableHelper/Description": {
"text": "Center Cells",
"created": "20160216162445619",
"creator": "Stephen",
"modified": "20160216173132637",
"modifier": "Stephen",
"tags": "",
"title": "$:/language/ControlPanel/Settings/TableHelper/Description"
},
"$:/language/ControlPanel/Settings/TableHelper/Caption": {
"text": "~TableHelper Conversion Options",
"created": "20160216162155055",
"creator": "Stephen",
"modified": "20160219140610529",
"modifier": "Stephen",
"title": "$:/language/ControlPanel/Settings/TableHelper/Caption"
},
"$:/language/ControlPanel/Settings/CommaConvert/Caption": {
"text": "Comma Convert Table Helper",
"created": "20160126140738185",
"creator": "Stephen",
"modified": "20160126140816335",
"modifier": "Stephen",
"tags": "",
"title": "$:/language/ControlPanel/Settings/CommaConvert/Caption"
},
"$:/language/ControlPanel/Settings/CommaConvert/Description": {
"text": "Convert commas to new table cells",
"created": "20160126140830632",
"creator": "Stephen",
"modified": "20160216173217101",
"modifier": "Stephen",
"tags": "",
"title": "$:/language/ControlPanel/Settings/CommaConvert/Description"
},
"$:/language/ControlPanel/Settings/CommaConvert/Hint": {
"text": "You can have the ~TableHelper convert commas to new cells. This is useful when converting csv files to tables.",
"created": "20160216171244663",
"creator": "Stephen",
"modified": "20160219140619864",
"modifier": "Stephen",
"tags": "",
"title": "$:/language/ControlPanel/Settings/CommaConvert/Hint"
},
"$:/core/images/format-table": {
"text": "<svg class=\"tc-image-format-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 32 32\">\n <g fill-rule=\"evenodd\">\n<path d=\"M0,6v22h32v-22h-32ZM12,20v-4h8v4h-8ZM20,22v4h-8v-4h8ZM20,10v4h-8v-4h8ZM10,10v4h-8v-4h8ZM2,16h8v4h-8v-4ZM22,16h8v4h-8v-4ZM22,14v-4h8v4h-8ZM2,22h8v4h-8v-4ZM22,26v-4h8v4h-8Z\" /></path>\n </g>\n</svg>",
"created": "20160308171837488",
"modified": "20160308173159974",
"tags": "$:/tags/Image",
"title": "$:/core/images/format-table"
},
"$:/config/ShortcutInfo/tablehelper": {
"text": "{{$:/language/Buttons/TableHelper/Hint}}",
"created": "20160505024511236",
"creator": "Stephen",
"modified": "20160505024542681",
"modifier": "Stephen",
"tags": "",
"title": "$:/config/ShortcutInfo/tablehelper"
},
"$:/config/shortcuts/tablehelper": {
"text": "ctrl-alt-T",
"created": "20160505023415043",
"creator": "Stephen",
"modified": "20160505121529857",
"modifier": "Stephen",
"tags": "",
"title": "$:/config/shortcuts/tablehelper"
}
}
}
{
"tiddlers": {
"$:/core/ui/EditorToolbar/chars": {
"created": "20181104183128736",
"text": "",
"title": "$:/core/ui/EditorToolbar/chars",
"shortcuts": "((chars))",
"modified": "20181106112437524",
"icon": "$:/core/images/chars",
"dropdown": "$:/core/ui/EditorToolbar/chars-dropdown",
"description": "{{$:/language/Buttons/Chars/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"caption": "{{$:/language/Buttons/Chars/Caption}}",
"tags": "$:/tags/EditorToolbar"
},
"$:/core/ui/EditorToolbar/chars-dropdown": {
"created": "20181104183704616",
"title": "$:/core/ui/EditorToolbar/chars-dropdown",
"text": "\\define toolbar-button-chars-inner()\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" mode=\"inline\"/>\n\n</$view>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Chars]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-chars-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Chars\"\n\tcaption={{$:/language/Buttons/Chars/New/Title}}\n\ttext={{$:/language/Buttons/Chars/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Chars/Caption/New}}/>\n\n</em>\n\n</$button>\n",
"modified": "20181104201027388"
},
"$:/core/images/chars": {
"created": "20181104190410338",
"title": "$:/core/images/chars",
"modified": "20181203201010619",
"text": "<svg class=\"tgc-chars tc-image-button\" height=\"22pt\" width=\"22pt\" viewBox=\"0 0 232 166\">\n<path d=\"m221.199764,145.478913c-27.178,1.942 -33.245,-11.405 -38.583,-26.935c-3.864,-11.24 -8.25,-25.3977 -10.224,-32.2197c12.491,-19.179 26.968,-42.207 48.524,-76.2502c0,0 -40.333,0 -40.333,0c-7.171,11.2442 -14.254,22.6292 -21.264,33.7662c-2.002,-5.605 -4.759,-11.641 -7.964,-16.771c-9.282,-14.3809 -23.88,-24.2813 -45.636,-22.9493c-28.76,1.7618 -50.485,15.544 -68.021,33.0793c-16.079,16.079 -31.7631,39.561 -33.5463,66.1597c-2.3877,35.606 23.6243,56.001 53.1133,58.237c23.304,1.769 40.755,-4.426 55.443,-12.113c9.971,-5.217 31.185,-22.894 37.534,-30.775c4.712,21.849 16.872,42.787 44.264,42.787c16.977,0 27.73,-9.319 33.512,-16.522c-2.076,0.16 -4.332,0.328 -6.819,0.506zm-130.854,-13.234c-6.291,4.558 -14.359,9.4 -22.83,10.716c-21.063,3.27 -30.352,-13.083 -28.886,-34.944c1.144,-17.0677 7.915,-32.8807 15.841,-46.5907c8.123,-14.052 17.608,-26.504 28.421,-34.01c3.861,-2.682 9.66,-5.877 17.704,-6.523c19.358,-1.5545 26.482,19.389 31.407,36.939c2.3,8.237 3.849,16.615 4.596,21.021c-5.52,8.103 -22.655,36.2937 -46.253,53.3917z\"/>\n</svg>",
"tags": "$:/tags/Image"
},
"$:/language/Buttons/Chars/Caption": {
"text": "character",
"title": "$:/language/Buttons/Chars/Caption",
"modified": "20181107164204977",
"created": "20181104190924014"
},
"$:/language/Buttons/Chars/Hint": {
"created": "20181104190939253",
"title": "$:/language/Buttons/Chars/Hint",
"modified": "20181106165158698",
"text": "Insert special character"
},
"$:/config/ShortcutInfo/chars": {
"created": "20181104202104518",
"title": "$:/config/ShortcutInfo/chars",
"modified": "20181104202112852",
"text": "{{$:/language/Buttons/Chars/Hint}}"
},
"$:/config/shortcuts/chars": {
"text": "Ctrl+7",
"title": "$:/config/shortcuts/chars",
"modified": "20181106100605866",
"created": "20181104202146007"
},
"$:/language/Chars/chevron": {
"created": "20181104184337023",
"title": "$:/language/Chars/chevron",
"modified": "20181106113256354",
"text": "»",
"caption": "Chevron right »",
"tags": "$:/tags/TextEditor/Chars"
},
"$:/language/Chars/alpha": {
"created": "20181104184403595",
"title": "$:/language/Chars/alpha",
"modified": "20181106113700098",
"text": "α",
"caption": "Alpha α",
"tags": "$:/tags/TextEditor/Chars"
},
"$:/language/Chars/beta": {
"created": "20181104184424402",
"title": "$:/language/Chars/beta",
"modified": "20181106113647215",
"text": "ß",
"caption": "Beta ß",
"tags": "$:/tags/TextEditor/Chars"
},
"$:/language/Chars/mu": {
"created": "20181104184447523",
"title": "$:/language/Chars/mu",
"modified": "20181106113634385",
"text": "μ",
"caption": "Mu μ",
"tags": "$:/tags/TextEditor/Chars"
},
"$:/language/Chars/checkmark": {
"created": "20181104184304843",
"title": "$:/language/Chars/checkmark",
"modified": "20181106113620647",
"text": "√",
"caption": "Checkmark √",
"tags": "$:/tags/TextEditor/Chars"
},
"$:/language/Chars/degree": {
"created": "20181106110936423",
"text": "°",
"title": "$:/language/Chars/degree",
"tags": "$:/tags/TextEditor/Chars",
"modified": "20181106113517515",
"caption": "Degree °"
},
"$:/language/Chars/ellipsis": {
"created": "20181106111416700",
"text": "…",
"title": "$:/language/Chars/ellipsis",
"tags": "$:/tags/TextEditor/Chars",
"modified": "20181106113236443",
"caption": "Ellipsis …"
},
"$:/language/Chars/equivalent": {
"created": "20181104184533462",
"title": "$:/language/Chars/equivalent",
"modified": "20181106113604080",
"text": "≡",
"caption": "Equivalent ≡",
"tags": "$:/tags/TextEditor/Chars"
},
"$:/language/Chars/mdash": {
"created": "20181106111534777",
"text": "—",
"title": "$:/language/Chars/mdash",
"tags": "$:/tags/TextEditor/Chars",
"modified": "20181106113432489",
"caption": "Mdash —"
},
"$:/language/Chars/ndash": {
"created": "20181106111507838",
"text": "–",
"title": "$:/language/Chars/ndash",
"tags": "$:/tags/TextEditor/Chars",
"modified": "20181106113455748",
"caption": "Ndash –"
},
"$:/language/Chars/obelisk": {
"created": "20181106111059219",
"text": "†",
"title": "$:/language/Chars/obelisk",
"tags": "$:/tags/TextEditor/Chars",
"modified": "20181106113400637",
"caption": "Obelisk †"
},
"$:/language/Chars/tab": {
"created": "20181106111135551",
"text": "\t",
"title": "$:/language/Chars/tab",
"tags": "$:/tags/TextEditor/Chars",
"modified": "20181106113342520",
"caption": "Tab \t"
},
"$:/language/Buttons/Chars/Caption/New": {
"text": "Add your own",
"title": "$:/language/Buttons/Chars/Caption/New",
"modified": "20181107162632178",
"created": "20181107162630202"
},
"$:/language/Buttons/Chars/New/Text": {
"text": "Character. (Remember to add a descriptive title in the caption field).",
"title": "$:/language/Buttons/Chars/New/Text",
"modified": "20181107162906492",
"created": "20181107162854101"
},
"$:/language/Buttons/Chars/New/Title": {
"text": "Name as shown in menu",
"title": "$:/language/Buttons/Chars/New/Title",
"modified": "20181107162703576",
"created": "20181107162701113"
},
"$:/plugins/tg/chars-button/readme": {
"created": "20181104201802562",
"creator": "TonGerner",
"title": "$:/plugins/tg/chars-button/readme",
"modified": "20191230201655283",
"text": "A button ({{$:/core/images/chars}}) for inserting special characters.<br>\nAssigned shortcut: {{$:/config/shortcuts/chars}}\n\nTo add new characters you can:\n\n# 'Add your own' menu entry\n# Cloning a Character button e.g. $:/language/Chars/alpha\n#* Adjust title, code and caption\n#* Save\n# Redefine an existing character\n",
"modifier": "TonGerner"
}
}
}
{
"tiddlers": {
"$:/config/ShortcutInfo/highlight": {
"created": "20170407190020051",
"text": "{{$:/language/Buttons/Highlight/Hint}}",
"title": "$:/config/ShortcutInfo/highlight",
"modifier": "TonGerner",
"modified": "20171030143601259",
"creator": "TonGerner"
},
"$:/config/shortcuts/highlight": {
"text": "Ctrl-H",
"title": "$:/config/shortcuts/highlight",
"modifier": "TonGerner",
"modified": "20170407190121204",
"creator": "TonGerner",
"created": "20170407190116383"
},
"$:/language/Buttons/Highlight/Caption": {
"text": "apply highlight",
"title": "$:/language/Buttons/Highlight/Caption",
"modifier": "TonGerner",
"modified": "20170409183014766",
"creator": "TonGerner",
"created": "20170409183007343"
},
"$:/language/Buttons/Highlight/Hint": {
"text": "Apply highlight",
"title": "$:/language/Buttons/Highlight/Hint",
"modifier": "TonGerner",
"modified": "20170409183039048",
"creator": "TonGerner",
"created": "20170409183025428"
},
"$:/core/images/highlight": {
"text": "<svg class=\"tgc-highlight tc-image-button\" height=\"22pt\" width=\"22pt\" viewBox=\"0 0 90 90\">\n<path d=\"m40.7,86.6l-35.3,0c-2.8,0 -5,-2.2 -5,-5s2.2,-5 5,-5l35.3,0c2.8,0 5,2.2 5,5s-2.3,5 -5,5z\"/>\n<path d=\"m58,78.2c-0.7,0 -1.4,-0.1 -2,-0.4l-25,-11.1c-2.5,-1.1 -3.7,-4.1 -2.5,-6.6c1.1,-2.5 4.1,-3.7 6.6,-2.5l24.9,11c2.5,1.1 3.7,4.1 2.5,6.6c-0.8,1.9 -2.6,3 -4.5,3z\"/>\n<path d=\"m40.5,86.6c-1.6,0 -2.5,-0.4 -3.1,-0.7c-1.7,-0.8 -6.3,-2.8 -9,-21.6c-0.4,-2.8 -2.3,-17.3 0.1,-22.7l12.9,-28.9c1.7,-3.8 4.8,-6.7 8.7,-8.2c3.9,-1.5 8.1,-1.4 12,0.3l19.2,8.6c2.5,1.1 3.7,4.1 2.5,6.6c-1.1,2.5 -4.1,3.7 -6.6,2.5l-19.2,-8.6c-1.4,-0.6 -2.9,-0.7 -4.3,-0.1c-1.4,0.5 -2.5,1.6 -3.1,3l-12.9,28.9c-0.4,1.1 -0.7,7.1 0.5,16.1c1,7.8 2.5,12.6 3.5,14.6c2.1,-0.6 6.7,-2.7 13.2,-7.2c7.5,-5.1 11.7,-9.3 12.3,-10.5l12.8,-28.8c1.1,-2.5 4.1,-3.7 6.6,-2.5c2.5,1.1 3.7,4.1 2.5,6.6l-12.8,28.9c-2.4,5.5 -14.4,13.7 -16.8,15.3c-10.4,6.9 -15.9,8.4 -19,8.4z\"/>\n</svg>",
"title": "$:/core/images/highlight",
"tags": "$:/tags/Image",
"modifier": "TonGerner",
"modified": "20170726075221948",
"creator": "TonGerner",
"created": "20170407174051692"
},
"$:/core/ui/EditorToolbar/highlight": {
"created": "20170407173855291",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"@@background-color:yellow; \"\n\tsuffix=\"@@\"\n/>\n",
"title": "$:/core/ui/EditorToolbar/highlight",
"tags": "$:/tags/EditorToolbar",
"shortcuts": "((highlight))",
"modifier": "TonGerner",
"modified": "20170606193309460",
"icon": "$:/core/images/highlight",
"description": "{{$:/language/Buttons/Highlight/Hint}}",
"creator": "TonGerner",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"caption": "{{$:/language/Buttons/Highlight/Caption}}"
},
"$:/plugins/tg/highlight-button/readme": {
"text": "A button ({{$:/core/images/highlight}}) for the Editor toolbar that highlights a selection<br>\nAssigned shortcut: {{$:/config/shortcuts/highlight}}",
"title": "$:/plugins/tg/highlight-button/readme",
"tags": "",
"modifier": "TonGerner",
"modified": "20191230195829858",
"creator": "TonGerner",
"created": "20170511202748742"
}
}
}
{
"tiddlers": {
"$:/plugins/tg/layout/combination": {
"created": "20180316161209354",
"text": "In case two or three of the following plugins:\n\n* Top menu ^^1^^ or Top-left menu ^^1^^\n* Top toolbar ^^1^^\n* Tiddlersbar ^^1^^\n\nare to be combined, some adjustments to the layout are necessary to prevent overlapping parts. The following gives the general procedure.\n\n# Click the ''Adjust layout'' button (<<icn $:/plugins/tg/layout/images/layout>>) in the top right bar or click [[Plugin tweaks|$:/plugins/tg/layout/tweaks]] and select the Theme tweaks tab\n## To create extra room on top, increase ''Story top position''\n# Select the Layout tab and increase ''Height topbar''\n# If required, adjust the 'Top' settings of<div>\n\n* 'Top menu' (tab Top menu, setting ''Top 'Top menu''')\n* 'Top-left menu' (tab Top-left menu, setting ''Top 'Top menu''' & setting ''Top 'Left menu''')\n* 'Toolbar' (tab Toolbar, setting ''Top 'Toolbar''')\n* 'Tiddlersbar (tab Tiddlersbar, setting ''Top 'Tiddlersbar''')\n</div>\n# Some tweaking of the above values\n# Adjust ''Sidebar top position'' in Theme tweaks tab until wiki title and tiddler title are level.\n\n\n\n^^''1''^^ Available at http://tongerner.tiddlyspot.com/\n\n<<<\n''Note:''<br>http://tongerner.tiddlyspot.com/ shows the combination of 'Top menu', 'Toolbar' and 'Tiddlersbar'.\n<<<\n\n",
"title": "$:/plugins/tg/layout/combination",
"tags": "",
"modified": "20200313135445072"
},
"$:/plugins/tg/layout/configuration-button": {
"created": "20171203165317769",
"text": "<$button class=\"tc-btn-invisible\" tooltip=\"Adjust layout\">\n<$action-sendmessage $message=\"tm-open-window\" $param=\"$:/plugins/tg/layout/tweaks\" height=\"800px\" width=\"720px\"/>\n{{$:/plugins/tg/layout/images/layout}}\n</$button>\n\n\n",
"title": "$:/plugins/tg/layout/configuration-button",
"tags": "$:/tags/TopRightBar",
"modified": "20200313135507564",
"list-before": "$:/core/ui/TopBar/menu",
"description": "Adjust layout",
"caption": "{{$:/plugins/tg/layout/icon}} adjust layout"
},
"$:/plugins/tg/layout/css-units": {
"text": "<br>\n\n* You can enter values in allowed CSS units, e.g. `%`, `px`, `em`, ...\n* You can enter colors:\n** by name, e.g. `red`, `blue`, ... see [[w3schools|https://www.w3schools.com/tags/ref_colornames.asp]]\n** as 6 (sometimes 3) digit Hex color code, e.g. `#FF0000` (or `#F00`)\n** with the color macro, e.g. `<<colour primary>>`.\n",
"title": "$:/plugins/tg/layout/css-units",
"modified": "20191216151510179",
"created": "20190722175502370"
},
"$:/plugins/tg/layout/icon": {
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\">\n <metadata id=\"metadata7\">image/svg+xml</metadata>\n <g>\n <title>Layer 1</title>\n <g id=\"layer1\">\n <path d=\"m48.98237,97.8691l-41.98313,-24.239l0,-48.47796l41.98313,-24.23897l41.98313,24.23897l0,48.47796l-41.98313,24.239z\" id=\"path4142\" stroke-miterlimit=\"4\" stroke-width=\"1.2218\" stroke=\"#a0a0ff\" fill=\"#a0a0ff\"/>\n <path id=\"svg_3\" d=\"m73.1813,28.26401l-15.55706,15.81597c0.61319,0.6247 0.61206,1.63724 0,2.25944c-0.61371,0.62398 -1.60823,0.62448 -2.22362,0l-6.66496,-6.77579c-0.61439,-0.62462 -0.61363,-1.63801 0,-2.26065c0.61329,-0.62358 1.60695,-0.62444 2.22244,0l0,0l15.55707,-15.81609c1.84112,-1.87179 4.8262,-1.87179 6.66732,0c1.84113,1.87178 1.84112,4.90654 -0.00001,6.77832l-0.00118,-0.0012zm-50.00484,46.31849l-2.22244,-2.2595l3.30621,-5.6205l3.36112,-1.1578l23.33557,-23.72413l2.22243,2.25941l-23.33556,23.72422l-1.13868,3.417l-5.52865,3.3613z\" fill-rule=\"evenodd\"/>\n </g>\n </g>\n</svg>",
"type": "image/svg+xml",
"title": "$:/plugins/tg/layout/icon",
"modifier": "TonGerner",
"modified": "20191216151535498",
"creator": "TonGerner",
"created": "20160109160239631"
},
"$:/plugins/tg/layout/info": {
"created": "20190902161718650",
"text": "\\define slidertg(label,tiddler)\n<$button popup=\"$:/state/$tiddler$\" class=\"tc-btn-invisible tgc-slider\"><$text text=\"$label$ »\"/></$button>\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=\"$:/state/$tiddler$\" animate=\"yes\">\n\n{{$tiddler$}}\n\n</$reveal>\n\\end\n\n* <<slidertg \"CSS units\" $:/plugins/tg/layout/css-units>>\n* <<slidertg \"Combine plugins\" $:/plugins/tg/layout/combination>>\n* <<slidertg \"Upgrading plugins\" $:/plugins/tg/layout/upgrade>>\n\n\n",
"title": "$:/plugins/tg/layout/info",
"tags": "$:/tags/plugin-tweaks",
"order": "1",
"modified": "20191230140536247",
"caption": "General info"
},
"$:/plugins/tg/layout/license": {
"text": "[[Layout tweaks plugin|http://tongerner.tiddlyspot.com/#Layout%20adjustment%20plugin]] © Ton Gerner — 2018-2020\n\nMIT License: https://opensource.org/licenses/MIT\n",
"title": "$:/plugins/tg/layout/license",
"tags": "",
"modified": "20191227193112628",
"created": "20180124162829244"
},
"$:/plugins/tg/layout/readme": {
"created": "20150731184044439",
"text": "''Note:''<br>This plugin contains 'general' settings for the layout and is additionally required for my following plugins: ^^1^^\n\n* Top menu\n* Top-left menu (top + left menu)\n* Toolbar (on top)\n* Tiddlersbar\n* ~TabStory (alternative tiddlersbar at top of story)\n* Uptoolbar (toolbar above title)\n* Tristate (tristate sidebar)\n\nThis plugin contains layout code common to the mentioned plugins and let you adjust:\n\n!! Theme tweaks\n* Sidebar layout\n* Story left position\n* Story top position\n* Story right\n* Story width\n* Tiddler width\n* Sidebar top position\n* Sidebar width\n\n!! Layout tweaks\n* Checkboxes\n** Display layout button (<<icn $:/plugins/tg/layout/images/layout>>)\n** Search above story\n** Toolbar to toggle editor toolbar + preview\n** Sort recent results alphabetical\n** Button to top of story river\n** Hide description Tools tab buttons\n** System tags tab\n** Recent dates bold\n** Add editor toolbar to sticky title behaviour\n** Set tiddler toolbar above the tiddler title\n\n* Other settings\n** Color and height of the top bar (as a boundary for top menu, toolbar, tiddlersbar, etc.)\n** Top padding of a tiddler\n** Color for displaying the 'active' state of some toggle buttons\n\nSettings for the layout can be found in ''~ControlPanel > Appearance > [[Plugin tweaks|$:/plugins/tg/layout/tweaks]]'', also available via the 'Adjust layout' button (<<icn $:/plugins/tg/layout/images/layout>>) in the Toprightbar.\n\n|borderless|k\n|^^^1^^ | |All these plugins contain a 'Settings' tiddler tagged with $:/tags/plugin-tweaks and will display - when installed - a tab under 'Plugin tweaks'.|\n\n<<<\n''Note:''<br>@@color:red;A sticky editor toolbar works ''only'' well in non-preview mode!.@@\n<<<",
"title": "$:/plugins/tg/layout/readme",
"modifier": "TonGerner",
"modified": "20200314172312713",
"creator": "TonGerner"
},
"$:/plugins/tg/layout/search": {
"created": "20181228194403881",
"text": "{{$:/AdvancedSearch}}",
"title": "$:/plugins/tg/layout/search",
"tags": "",
"modified": "20200115143633717"
},
"$:/plugins/tg/layout/settings": {
"created": "20150729190109349",
"text": "!!Layout tweaks\n\n<$checkbox tiddler=\"$:/plugins/tg/layout/configuration-button\" tag=\"$:/tags/TopRightBar\"> 'Adjust layout' button (<<icn $:/plugins/tg/layout/images/layout>>)</$checkbox><br>\n<$checkbox tiddler=\"$:/plugins/tg/layout/search\" tag=\"$:/tags/AboveStory\"> 'Search above story river'</$checkbox><br>\n<$checkbox tiddler=\"$:/plugins/tg/layout/toggle_toolbar\" tag=\"$:/tags/EditTemplate\"> Toolbar 'Toggle editortoolbar/preview'</$checkbox><br>\n<$checkbox tiddler=\"$:/plugins/tg/layout/timeline-macro\" tag=\"$:/tags/Macro\"> 'Sort recent alphabetical'</$checkbox><br>\n<$checkbox tiddler=\"$:/plugins/tg/layout/button2top/style\" tag=\"$:/tags/Stylesheet\"> 'Button to top of story river'</$checkbox><br>\n<$checkbox tiddler=\"$:/plugins/tg/layout/tools/style\" tag=\"$:/tags/Stylesheet\"> 'Hide description Tools tab buttons'</$checkbox><br>\n<$checkbox tiddler=\"$:/plugins/tg/layout/systemtags\" tag=\"$:/tags/MoreSideBar\"> 'System tags tab'</$checkbox><br>\n<$checkbox tiddler=\"$:/plugins/tg/layout/recent-dates-bold/style\" tag=\"$:/tags/Stylesheet\"> 'Recent dates bold'</$checkbox><br>\n<$checkbox field=\"sticky\" checked=\"yes\" unchecked=\"no\" default=\"yes\" checkactions=\"\"\"<$action-setfield $tiddler=\"$:/plugins/tg/layout/sticky\" title=\"$:/themes/tiddlywiki/vanilla/sticky\">\"\"\" uncheckactions=\"\"\"<$action-deletetiddler $tiddler=\"$:/themes/tiddlywiki/vanilla/sticky\"/>\"\"\" > Add editor toolbar to sticky title behaviour</$checkbox> ({{$:/plugins/layout/buttons/toggle-sticky}} Sticky {{$:/themes/tiddlywiki/vanilla/options/stickytitles}} )<br>\n{{$:/plugins/tg/layout/toolbar-up/ckeckbox}}\n\n\n<table class=\"tablestyle\">\n@@.brown ''Top bar''@@\n<<tableRow \"Background color 'Top bar'\" \"$:/plugins/tg/layout/styles\" \"topbar-background-color\">>\n<<tableRow \"Height 'Top bar'\" \"$:/plugins/tg/layout/styles\" \"topbar-height\">>\n@@.brown ''Tiddler''@@\n<<tableRow \"Top padding\" \"$:/plugins/tg/layout/styles\" \"tiddler-padding-top\">>\n@@.brown ''Button color''@@\n<<tableRow \"Active button color\" \"$:/plugins/tg/layout/styles\" \"active-state-color\">>\n</table>\n\n<<<\n''Note:''\n\n* @@color:red;For a 'Top bar' to become visible, a ''color'' (and a ''height > 0px'') need to be entered!@@\n* The height of the Top bar is also the offset for sticky titles; the sticky editor toolbar gets an extra 40px offset\n** @@color:red;A sticky editor toolbar works ''only'' correct in non-preview mode!@@\n<<<\n\n<$button tooltip=\"Help\">\n<$action-sendmessage $message=\"tm-open-window\" $param=\"$:/plugins/tg/layout/settings-help\" height=\"800px\" width=\"720px\"/>Help</$button>",
"up": "yes",
"title": "$:/plugins/tg/layout/settings",
"tags": "$:/tags/plugin-tweaks",
"sticky": "yes",
"order": "3",
"modifier": "TonGerner",
"modified": "20200316201508833",
"creator": "TonGerner",
"caption": "Layout tweaks"
},
"$:/plugins/tg/layout/settings-help": {
"created": "20150801124528672",
"text": "|Item|Entry |Description |Default |h\n|'Adjust layout' button |<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|'Adjust layout' button in Toprightbar| <input type=\"checkbox\" checked /> |\n|'Search above story river' |<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|Advanced search above story river ^^''1''^^| <input type=\"checkbox\" /> |\n|Toolbar 'toggle editortoolbar/preview' |<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|Toolbar - in edit mode - below tags| <input type=\"checkbox\" checked /> |\n|Sort recent results alphabetical |<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|Sort recent results each day in alphabetical order| <input type=\"checkbox\" checked /> |\n|'Button to top of story river' |<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|Button to jump to top of story river| <input type=\"checkbox\" checked /> |\n|'Hide description Tools tab buttons' |<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|Hide decriptions next to buttons under Tools tab| <input type=\"checkbox\" checked /> |\n|'System tags tab' |<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|Add a System tags tab| <input type=\"checkbox\" checked /> |\n|'Recent dates bold' |<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|Show dates in recent tab bold| <input type=\"checkbox\" checked /> |\n|Add editor toolbar to sticky title behaviour |<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|If titles are sticky, editor toolbar will be sticky as well | <input type=\"checkbox\" checked /> |\n|Set tiddler toolbar above the tiddler title|<input type=\"checkbox\" /> / <input type=\"checkbox\" checked />|Creates more room for tiddler title ^^2^^| <input type=\"checkbox\" /> |\n|||||\n|||||\n|Topbar |Background color 'Top bar'|Background color of the top bar<br>Transparent when left 'blank'!| `<<colour page-background>>` |\n|~|Height 'Top bar'|Height of the top bar| 40px |\n|Tiddler |Top padding |Top padding of tiddler | 30px |\n|Button color|Active button color |Color indicating 'active' state of toggle button | `<<colour primary>>` |\n\n\n|borderless|k\n|^''@@font-size: 0.8em;1@@'' | |• In classic storyview: scroll up to reach search<br>• In zoomin view search always visible|\n|^''@@font-size: 0.8em;2@@'' ||Adds 'Toolbar - title' tab to Plugin tweaks with settings for layout tiddler toolbar|\n\n\n\n\n\n",
"title": "$:/plugins/tg/layout/settings-help",
"tags": "",
"modifier": "TonGerner",
"modified": "20200325165236673",
"creator": "TonGerner"
},
"$:/plugins/tg/layout/sidebar-top": {
"text": "0px",
"title": "$:/plugins/tg/layout/sidebar-top",
"tags": "",
"modified": "20191216152841842",
"created": "20161213115930178"
},
"$:/plugins/tg/layout/styles": {
"text": "<pre>/* LAYOUT SETTINGS */\n\n/* VERTICAL OFFSET FOR TOP OF SIDEBAR */\nhtml .tc-sidebar-scrollable {\n top: {{$:/plugins/tg/layout/sidebar-top}};\n}\n\n* BACKGROUND COLOR TOPRIGHTBAR (with double chevron) */\n.tc-topbar {\n background-color: {{!!topbar-background-color}};\n}\n\n/* TOPBAR */\n.tgc-toolbar {\n display:block;\n position:fixed;\n left:0px;\n top:0px;\n width:100%;\n height: {{!!topbar-height}};\n background-color: {{!!topbar-background-color}};\n z-index: 600;\n}\n\n/* TOP PADDING TIDDLER */\nbody.tc-body .tc-tiddler-frame {\n padding-top: {{!!tiddler-padding-top}};\n}\n\n/* COLOR ACTIVE STATE TOGGLE BUTTON */\nbody.tc-body .tgc-active-indicator {\n color: {{!!active-state-color}};\n}\nbody.tc-body .tgc-active-indicator svg {\n fill: {{!!active-state-color}};\n}\n\nbody.tc-body .tgc-active-indicator:hover svg {\n fill: <<colour \"foreground\">>;\n}\n\n/* HIDE BUTTON2TOP WHEN NOT ACTIVE */\n.tgc-fixed-bottom {\n display: none;\n}\n\n/* TITLE - TOOLBAR SPACING */\nhtml .tgc-tiddler-title-space {\n line-height: {{!!title-toolbar-spacing}}; \n}\n\n/* SIZE OF TIDDLER BUTTONS */\nhtml .tc-tiddler-controls button svg {\n height: {{!!tiddler-button-size}};\n}\n\n/* SPACE BETWEEN TIDDLER BUTTONS */\nhtml .tc-tiddler-controls button {\n margin-left: {{!!tiddler-button-spacing}};\n}\n\n/* SETTINGS TABLE */\n/* WIDTH SETTINGS TABLE */\ninput[type='text'].settings {\n width: 150px;\n}\ntable.tablestyle {\n font-size: 0.9em;\n border-width: 0px;\n border-style: solid;\n padding: 2px;\n border-color: #DDD;\n border-collapse: collapse;\n}\ntable.tablestyle th {\n background-color: #F0F0F0;\n border-color: #DDD;\n text-align: left;\n vertical-align: top;\n border-style: solid;\n border-width: 1px;\n padding: 5px;\n}\ntable.tablestyle tr {\n background-color: #F0F0F0;\n padding: 0px;\n}\ntable.tablestyle td {\n border-color: #DDD;\n border-style: solid;\n border-width: 1px;\n padding:2px;\n}\n/* COLOR HEADINGS TABLE */\n.brown {\n color: #884411;\n font-weight: bold;\n}\n/* BORDERLESS TABLES */\n.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody {\n border:0 !important;\n margin:0 !important;\n padding:0 !important;\n}\n</pre>",
"topbar-height": "40px",
"topbar-background-color": "<<colour page-background>>",
"title-toolbar-spacing": "1.3em",
"title": "$:/plugins/tg/layout/styles",
"tiddler-padding-top": "30px",
"tiddler-button-spacing": "0px",
"tiddler-button-size": "0.6em",
"tags": "$:/tags/Stylesheet",
"story-river-top": "0px",
"sidebar-top": "0px",
"modifier": "TonGerner",
"modified": "20200314160330594",
"list-after": "$:/themes/tiddlywiki/vanilla/base",
"creator": "TonGerner",
"created": "20161212103011213",
"active-state-color": "<<colour primary>>"
},
"$:/plugins/tg/layout/themetweaks-help": {
"text": "|Item |Entry |Description |Default |h\n|Theme tweaks |^Sidebar layout |^Choice between Fluid story, fixed sidebar and Fixed story, fluid sidebar|Fluid story, fixed sidebar ^^1^^|\n|~|^Story left position |^How far the left margin of the story river (tiddler area) is from the left of the page| 0px|\n|~|^Story top position |^How far the top margin of the story river is from the top of the page| 0px ^^2^^|\n|~|^Story right |^How far the left margin of the sidebar is from the left of the page| 770px|\n|~|^Story width |^The overall width of the story river| 770px|\n|~|^Tiddler width |^Within the story river| 686px|\n|~|^Sidebar top position |^Start of the sidebar<br>(from the top)| 0px ^^2^^|\n|~|^Sidebar width |^The width of the sidebar in fluid-fixed layout| 350px|\n\n|borderless|k\n|^''@@font-size: 0.8em;1@@'' ||''Fluid story, fixed sidebar interferes with Tristate plugin'' => select Fixed story, fluid sidebar for Tristate plugin |\n|^''@@font-size: 0.8em;2@@'' | |Default values; ''need to be adjusted (increased) in case of adding a top menu, toolbar, tiddlersbar, ... to the wiki!''|",
"title": "$:/plugins/tg/layout/themetweaks-help",
"tags": "",
"modified": "20191227170019117",
"created": "20161212130221042"
},
"$:/plugins/tg/layout/toggle_toolbar": {
"created": "20190221194645657",
"text": "Toggle editor toolbar <$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"></$checkbox> Toggle preview <$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/showeditpreview\" setTo=\"no\" tooltip=\"Hide preview\" class=\"tc-btn-invisible\">{{$:/core/images/preview-open}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/showeditpreview\" setTo=\"yes\" tooltip=\"Show preview\" class=\"tc-btn-invisible\">{{$:/core/images/preview-closed}}</$button>\n</$reveal>\n Scrollable preview <$checkbox tiddler=\"$:/plugins/tg/layout/style_scroll_preview\" tag=\"$:/tags/Stylesheet\"></$checkbox> Toggle sidebar {{$:/core/ui/TopBar/menu}}\n\n",
"title": "$:/plugins/tg/layout/toggle_toolbar",
"tags": "$:/tags/EditTemplate",
"modifier": "TonGerner",
"modified": "20191216153840057",
"list-after": "$:/core/ui/EditTemplate/tags",
"creator": "TonGerner"
},
"$:/plugins/tg/layout/topbar": {
"text": "<div class=\"tgc-toolbar tc-adjust-top-of-scroll\"></div>\n",
"title": "$:/plugins/tg/layout/topbar",
"tags": "$:/tags/PageTemplate",
"modifier": "TonGerner",
"modified": "20191216153308624",
"creator": "TonGerner",
"created": "20150731184520854"
},
"$:/plugins/tg/layout/tweaks": {
"created": "20150801100456266",
"text": "The general layout adjustments can be found under the 'Themes tweak' and 'Layout tweaks' tabs. Dependent on installed plugins other tabs are available ('Top menu', 'Top-left menu', 'Top toolbar', 'Tiddlersbar, '~TabStory', 'Uptoolbar', 'Tristate').\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/plugin-tweaks]nsort[order]]\" \"$:/plugins/tg/layout/settings\" \"\" \"tc-vertical\">>",
"title": "$:/plugins/tg/layout/tweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"status": "yes",
"modifier": "TonGerner",
"modified": "20200314172835412",
"creator": "TonGerner",
"caption": "Plugin tweaks",
"up": "no"
},
"$:/plugins/tg/layout/upgrade": {
"text": "Recommended before upgrading one of the following plugins:\n\n* Layout adjustment\n* Top menu\n* Top toolbar\n* Tiddlersbar\n\n<hr>\n\n\n# Note down all adjustments made in the Settings section of the plugin\n# Delete the following overridden shadow tiddlers of the plugin:\n#* Settings\n#* Styles\n# Upgrade the plugin\n# Reapply the settings",
"title": "$:/plugins/tg/layout/upgrade",
"tags": "",
"modified": "20191216153509327",
"created": "20190816185216079"
},
"$:/plugins/tg/layout/style_scroll_preview": {
"text": ".tc-edit-texteditor, .tc-tiddler-preview-preview {\n max-height:80vh;\n overflow-y:auto;\n}",
"type": "text/css",
"title": "$:/plugins/tg/layout/style_scroll_preview",
"tags": "",
"modified": "20200312125033755",
"created": "20191222101746570"
},
"$:/plugins/tg/layout/table-macros": {
"created": "20150801122014492",
"text": "\\define inputBox() <$edit-text tiddler=\"$(reftarget)$\" field=\"$(reffield)$\" class=\"$(refclass)$\"/>\n\n\\define tableRow(header,target,field,class)\n<$set name=\"reftarget\" value=\"$target$\">\n<$set name=\"reffield\" value=\"$field$\">\n<$set name=\"refclass\" value=\"settings\">\n<tr><th>$header$ </th><td><<inputBox>></td></tr>\n</$set>\n</$set>\n</$set>\n\\end\n",
"title": "$:/plugins/tg/layout/table-macros",
"tags": "$:/tags/Macro",
"modifier": "TonGerner",
"modified": "20200110204107672",
"creator": "TonGerner"
},
"$:/plugins/tg/layout/themetweaks": {
"text": "!! Theme tweaks\n\n@@.brown ''Theme tweaks''@@<br>\nexcerpt from 'Theme Tweaks' tab\n\n|tablestyle|k\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\">Sidebar layout</$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\">Fixed story, Fluid sidebar</option><option value=\"fluid-fixed\">Fluid story, Fixed sidebar</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\">Story left position</$link>|^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\">Story top position</$link>|^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\">Story right</$link>|^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\">Story width</$link>|^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\">Tiddler width</$link>|^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/plugins/tg/layout/sidebar-top\">Sidebar top position</$link> |^<$edit-text tiddler=\"$:/plugins/tg/layout/sidebar-top\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\">Sidebar width</$link> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n<$button tooltip=\"Help\">\n<$action-sendmessage $message=\"tm-open-window\" $param=\"$:/plugins/tg/layout/themetweaks-help\" height=\"500px\" width=\"700px\"/>Help</$button>\n",
"title": "$:/plugins/tg/layout/themetweaks",
"tags": "$:/tags/plugin-tweaks",
"order": "2",
"modified": "20191231182438547",
"created": "20161212090056554",
"caption": "Theme tweaks"
},
"$:/plugins/tg/layout/timeline-macro": {
"text": "\\define timeline-title()\n<!-- This macro overwrites the core macro; \n the recent results will be sorted \n each day in alpabetical order.\n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$sort[]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}>\n<<timeline-title>>\n</$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n",
"title": "$:/plugins/tg/layout/timeline-macro",
"tags": "$:/tags/Macro",
"modified": "20200310171616511",
"created": "20160130112819603"
},
"$:/plugins/tg/layout/button2top": {
"text": "<div class=\"tgc-fixed-bottom\">\n<$button class=\"tc-btn-invisible tgc-button-color\">\n▲\n<$list variable='Target' filter='[list[$:/StoryList]first[]]'>\n<$action-navigate $to=<<Target>>/>\n</$list>\n</$button>\n</div>\n\n",
"title": "$:/plugins/tg/layout/button2top",
"tags": "$:/tags/PageTemplate",
"modifier": "TonGerner",
"modified": "20200114111444798",
"list-after": "$:/plugins/tg/layout/styles",
"creator": "TonGerner",
"created": "20180304212804838"
},
"$:/plugins/tg/layout/button2top/style": {
"text": "<pre>/* BUTTON TO TOP */\n.tgc-fixed-bottom {\n display: block;\n position: fixed;\n bottom: 10px;\n right: 10px;\n padding: 8px;\n background-color: <<colour page-background>>;\n}\n.tgc-button-color {\n color: {{$:/plugins/tg/layout/styles!!active-state-color}};\n}\n.tgc-button-color:hover {\n color: <<colour sidebar-controls-foreground-hover>>;\n}\n</pre>",
"title": "$:/plugins/tg/layout/button2top/style",
"tags": "$:/tags/Stylesheet",
"modified": "20200310171626305",
"created": "20200113122827159"
},
"$:/plugins/tg/layout/recent-dates-bold/style": {
"created": "20200115151655355",
"text": "/* RECENT TAB DATE BOLD */\n.tc-sidebar-lists .tc-timeline {\n font-weight: bold;\n}\n",
"title": "$:/plugins/tg/layout/recent-dates-bold/style",
"tags": "$:/tags/Stylesheet",
"modified": "20200310172022137",
"type": "text/css"
},
"$:/plugins/tg/layout/systemtags": {
"created": "20170323185212447",
"text": "<$list filter=\"[all[shadows+tiddlers]tags[]is[system]sort[title]]\">\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/> <small class=\"tc-menu-list-count\"><$count filter=\"[all[current]tagging[]]\"/></small>\n\n</$list>\n",
"title": "$:/plugins/tg/layout/systemtags",
"tags": "$:/tags/MoreSideBar",
"modifier": "TonGerner",
"modified": "20200310172011553",
"list-after": "$:/core/ui/MoreSideBar/Tags",
"creator": "TonGerner",
"caption": "System tags"
},
"$:/plugins/tg/layout/tools/style": {
"created": "20200115141940681",
"text": "/* REMOVE DESCRIPTIONS OF BUTTONS IN TOOLS TAB */\n.tc-sidebar-lists .tc-muted {\n display:none;\n}\n",
"type": "text/css",
"title": "$:/plugins/tg/layout/tools/style",
"tags": "$:/tags/Stylesheet",
"modified": "20200310172113537"
},
"$:/plugins/tg/layout/images/pin": {
"text": "<svg class=\"tgc-pin tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 8 8\">\n <path d=\"m1.85672,0.03562a0.5,0.49555 0 0 0 0.16,0.99109l0.5,0l0,1.98219l-1,0c-0.55,0 -1,0.44599 -1,0.99109l3,0l0,2.97328l0.44,0.99109l0.56,-0.99109l0,-2.97328l3,0c0,-0.5451 -0.45,-0.99109 -1,-0.99109l-1,0l0,-1.98219l0.5,0a0.5,0.49555 0 1 0 0,-0.99109l-4,0a0.5,0.49555 0 0 0 -0.09,0a0.5,0.49555 0 0 0 -0.06,0l-0.01,0z\"/>\n</svg>",
"title": "$:/plugins/tg/layout/images/pin",
"tags": "",
"modified": "20200312161110078",
"created": "20180131170610630"
},
"$:/plugins/tg/layout/images/unpin": {
"text": "<svg class=\"tgc-unpin tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 8 8\">\n <path transform=\"rotate(89.90647888183594 4.016719818115234,3.998984575271606) \" d=\"m1.85672,0.03562a0.5,0.49555 0 0 0 0.16,0.99109l0.5,0l0,1.98219l-1,0c-0.55,0 -1,0.44599 -1,0.99109l3,0l0,2.97328l0.44,0.99109l0.56,-0.99109l0,-2.97328l3,0c0,-0.5451 -0.45,-0.99109 -1,-0.99109l-1,0l0,-1.98219l0.5,0a0.5,0.49555 0 1 0 0,-0.99109l-4,0a0.5,0.49555 0 0 0 -0.09,0a0.5,0.49555 0 0 0 -0.06,0l-0.01,0z\"/>\n</svg>",
"title": "$:/plugins/tg/layout/images/unpin",
"tags": "",
"modified": "20200312161053254",
"created": "20180130174200638"
},
"$:/plugins/tg/layout/sticky": {
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n position: -webkit-sticky;\n position: -moz-sticky;\n position: -o-sticky;\n position: -ms-sticky;\n position: sticky;\n top: ``{{$:/plugins/tg/layout/styles!!topbar-height}}``;\n background: ``<<colour tiddler-background>>``;\n z-index: 500;\n}\n.tc-editor-toolbar {\n position: -webkit-sticky;\n position: -moz-sticky;\n position: -o-sticky;\n position: -ms-sticky;\n position: sticky;\n top: ``calc({{$:/plugins/tg/layout/styles!!topbar-height}} + 40px)``;\n background: ``<<colour tiddler-background>>``;\n z-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/tg/layout/sticky",
"tags": "",
"modified": "20200312155210620",
"created": "20170330150510113"
},
"$:/plugins/tg/layout/macros/doc": {
"created": "20200313125315847",
"text": "\\define icn(icon)\n<button class=\"tc-btn-invisible\"> {{$icon$}}</button>\n\\end\n",
"title": "$:/plugins/tg/layout/macros/doc",
"tags": "$:/tags/Macro",
"modified": "20200313130334028"
},
"$:/plugins/tg/layout/images/layout": {
"text": "<svg class=\"tgc-layout-button tc-image-button\" height=\"22pt\" width=\"22pt\" viewBox=\"0 0 22 22\">\n<path d=\"m19.84313,0.21698l-17.65497,0c-1.08334,0 -1.96191,0.9235 -1.96191,2.0571l0,17.48416c0,1.1359 0.87857,2.0571 1.96191,2.0571l17.65497,0c1.08334,0 1.96191,-0.92119 1.96191,-2.0571l0,-17.48416c0,-1.1336 -0.87857,-2.0571 -1.96191,-2.0571zm-17.65497,7.80127l5.71838,0l0,11.73768l-5.71838,0l0,-11.73768zm7.67809,11.73768l0,-11.73768l9.97689,0l0,-2.0571l-17.65497,0l0,-3.68707l17.65497,0l0.0022,17.48416l-9.97909,0l0,-0.00231z\"/>\n</svg>",
"title": "$:/plugins/tg/layout/images/layout",
"tags": "",
"modified": "20200313130134669",
"created": "20171203171851124"
},
"$:/plugins/tg/layout/buttons/toggle-sticky": {
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" setTo=\"no\" tooltip=\"Toggle sticky behaviour\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n<span class=\"tgc-active-indicator\">\n{{$:/plugins/tg/layout/images/pin}}\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"sticky\"/></span>\n</$list>\n</$button>\n\n</$reveal>\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"no\">\n<$button set=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" setTo=\"yes\" tooltip=\"Toggle sticky behaviour\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/plugins/tg/layout/images/unpin}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"non-sticky\"/></span>\n</$list>\n</$button>\n</$reveal>",
"title": "$:/plugins/tg/layout/buttons/toggle-sticky",
"tags": "$:/tags/PageControls",
"modified": "20200313124546512",
"description": "Toggle sticky behaviour",
"created": "20200312200703196",
"caption": "{{$:/plugins/tg/layout/images/pin}} toggle sticky behaviour"
},
"$:/plugins/tg/layout/settings-toolbar-up": {
"text": "!!Tiddler toolbar settings\n<table class=\"tablestyle\">\n<<tableRow \"Spacing title ↔ toolbar\" \"$:/plugins/tg/layout/styles\" \"title-toolbar-spacing\">>\n<<tableRow \"Size of tiddler buttons\" \"$:/plugins/tg/layout/styles\" \"tiddler-button-size\">>\n<<tableRow \"Button spacing 'Tiddler toolbar'\" \"$:/plugins/tg/layout/styles\" \"tiddler-button-spacing\">>\n</table>\n<$button tooltip=\"Help\">\n<$action-sendmessage $message=\"tm-open-window\" $param=\"$:/plugins/tg/layout/settings-toolbar-up-help\" height=\"200px\" width=\"720px\"/>Help</$button>",
"title": "$:/plugins/tg/layout/settings-toolbar-up",
"order": "9",
"modified": "20200316201821606",
"created": "20200314154628735",
"caption": "Toolbar - title"
},
"$:/plugins/tg/layout/settings-toolbar-up-help": {
"text": "|Entry |Description |Default |h\n|Spacing title ↔ toolbar |Space between toolbar and title of tiddler | 1.3em |\n|Size of tiddler buttons |Size of tiddler buttons | 0.6em |\n|Button spacing 'Tiddler toolbar' |Spacing between buttons of tiddler toolbar | 0px |",
"title": "$:/plugins/tg/layout/settings-toolbar-up-help",
"tags": "",
"modified": "20200314172011820",
"created": "20200314154755381"
},
"$:/plugins/tg/layout/toolbar-up": {
"created": "20200314153228277",
"text": "\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<div class=\"tgc-tiddler-title-space\"> </div>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}/>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>",
"title": "$:/plugins/tg/layout/toolbar-up",
"modified": "20200316201335735"
},
"$:/plugins/tg/layout/toolbar-up/ckeckbox": {
"created": "20200316192402200",
"text": "<$checkbox\nfield=\"up\"\nchecked=\"yes\"\nunchecked=\"no\"\ndefault=\"no\"\ncheckactions=\"\"\"<$action-setfield $tiddler=\"$:/plugins/tg/layout/toolbar-up\" title=\"$:/core/ui/ViewTemplate/title\"/>\n<$action-setfield $tiddler=\"$:/plugins/tg/layout/settings-toolbar-up\" tags=\"$:/tags/plugin-tweaks\"/>\n<$action-setfield $tiddler=\"$:/core/ui/ViewTemplate/title\" tags=\"$:/tags/ViewTemplate\"/>\"\"\"\nuncheckactions=\"\"\"\n<$action-deletetiddler $tiddler=\"$:/core/ui/ViewTemplate/title\"/>\n<$action-deletefield $tiddler=\"$:/plugins/tg/layout/settings-toolbar-up\" tags/>\"\"\"\n>\n Set tiddler toolbar above the tiddler title\n</$checkbox>\n",
"up": "no",
"title": "$:/plugins/tg/layout/toolbar-up/ckeckbox",
"tags": "",
"modified": "20200316202137510"
}
}
}
<$button class="tc-btn-invisible" tooltip="Adjust layout">
<$action-sendmessage $message="tm-open-window" $param="$:/plugins/tg/layout/tweaks" height="800px" width="720px"/>
{{$:/plugins/tg/layout/images/layout}}
</$button>
.tc-edit-texteditor, .tc-tiddler-preview-preview {
max-height:80vh;
overflow-y:auto;
}
<pre>/* LAYOUT SETTINGS */
/* VERTICAL OFFSET FOR TOP OF SIDEBAR */
html .tc-sidebar-scrollable {
top: {{$:/plugins/tg/layout/sidebar-top}};
}
* BACKGROUND COLOR TOPRIGHTBAR (with double chevron) */
.tc-topbar {
background-color: {{!!topbar-background-color}};
}
/* TOPBAR */
.tgc-toolbar {
display:block;
position:fixed;
left:0px;
top:0px;
width:100%;
height: {{!!topbar-height}};
background-color: {{!!topbar-background-color}};
z-index: 600;
}
/* TOP PADDING TIDDLER */
body.tc-body .tc-tiddler-frame {
padding-top: {{!!tiddler-padding-top}};
}
/* COLOR ACTIVE STATE TOGGLE BUTTON */
body.tc-body .tgc-active-indicator {
color: {{!!active-state-color}};
}
body.tc-body .tgc-active-indicator svg {
fill: {{!!active-state-color}};
}
body.tc-body .tgc-active-indicator:hover svg {
fill: <<colour "foreground">>;
}
/* HIDE BUTTON2TOP WHEN NOT ACTIVE */
.tgc-fixed-bottom {
display: none;
}
/* TITLE - TOOLBAR SPACING */
html .tgc-tiddler-title-space {
line-height: {{!!title-toolbar-spacing}};
}
/* SIZE OF TIDDLER BUTTONS */
html .tc-tiddler-controls button svg {
height: {{!!tiddler-button-size}};
}
/* SPACE BETWEEN TIDDLER BUTTONS */
html .tc-tiddler-controls button {
margin-left: {{!!tiddler-button-spacing}};
}
/* SETTINGS TABLE */
/* WIDTH SETTINGS TABLE */
input[type='text'].settings {
width: 150px;
}
table.tablestyle {
font-size: 0.9em;
border-width: 0px;
border-style: solid;
padding: 2px;
border-color: #DDD;
border-collapse: collapse;
}
table.tablestyle th {
background-color: #F0F0F0;
border-color: #DDD;
text-align: left;
vertical-align: top;
border-style: solid;
border-width: 1px;
padding: 5px;
}
table.tablestyle tr {
background-color: #F0F0F0;
padding: 0px;
}
table.tablestyle td {
border-color: #DDD;
border-style: solid;
border-width: 1px;
padding:2px;
}
/* COLOR HEADINGS TABLE */
.brown {
color: #884411;
font-weight: bold;
}
/* BORDERLESS TABLES */
.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody {
border:0 !important;
margin:0 !important;
padding:0 !important;
}
</pre>
{
"tiddlers": {
"$:/language/Marklets/Blue": {
"created": "20180203112600010",
"text": "@@color:Blue;",
"title": "$:/language/Marklets/Blue",
"tags": "$:/tags/TextEditor/Marklet",
"modified": "20180204173818082",
"caption": "Text color Blue"
},
"$:/language/Marklets/Highlight-cyan": {
"created": "20180201205802625",
"text": "@@background-color:Cyan;",
"title": "$:/language/Marklets/Highlight-cyan",
"tags": "$:/tags/TextEditor/Marklet",
"modified": "20180204174005145",
"caption": "Highlight cyan"
},
"$:/language/Marklets/Highlight-yellow": {
"created": "20180201165042434",
"text": "@@background-color:Yellow;",
"title": "$:/language/Marklets/Highlight-yellow",
"tags": "$:/tags/TextEditor/Marklet",
"modified": "20180204173946731",
"caption": "Highlight yellow"
},
"$:/language/Marklets/Red": {
"created": "20180201204850524",
"text": "@@color:Red;",
"title": "$:/language/Marklets/Red",
"tags": "$:/tags/TextEditor/Marklet",
"modified": "20180204173900544",
"caption": "Text color Red"
},
"$:/language/Marklets/White-on-red": {
"created": "20180203112012082",
"text": "@@color:White;background-color:Red;",
"title": "$:/language/Marklets/White-on-red",
"tags": "$:/tags/TextEditor/Marklet",
"modified": "20180204173924685",
"caption": "Text color White on Red"
},
"$:/core/ui/EditorToolbar/mark": {
"created": "20180201153958562",
"text": "",
"title": "$:/core/ui/EditorToolbar/mark",
"tags": "$:/tags/EditorToolbar",
"shortcuts": "((mark))",
"modified": "20181106165621687",
"icon": "$:/core/images/mark",
"dropdown": "$:/core/ui/EditorToolbar/mark-dropdown",
"description": "{{$:/language/Buttons/Mark/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"caption": "{{$:/language/Buttons/Mark/Caption}}"
},
"$:/core/ui/EditorToolbar/mark-dropdown": {
"text": "\\define toolbar-button-mark-inner()\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{$(snippetTitle)$}}\n\tsuffix=\"@@\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" mode=\"inline\"/>\n\n</$view>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Marklet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-mark-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Marklet\"\n\tcaption={{$:/language/Buttons/Mark/New/Title}}\n\ttext={{$:/language/Buttons/Mark/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Mark/Caption/New}}/>\n\n</em>\n\n</$button>\n",
"title": "$:/core/ui/EditorToolbar/mark-dropdown",
"tags": "",
"modified": "20180201204624807",
"created": "20180201154415737"
},
"$:/core/images/mark": {
"created": "20180201154905475",
"text": "<svg class=\"tgc-mark tc-image-button\" height=\"22pt\" width=\"22pt\" viewBox=\"0 0 90 90\">\n <path d=\"m40.7,86.6l-35.3,0c-2.8,0 -5,-2.2 -5,-5s2.2,-5 5,-5l35.3,0c2.8,0 5,2.2 5,5s-2.3,5 -5,5z\" fill=\"red\"/>\n <path d=\"m58,78.2c-0.7,0 -1.4,-0.1 -2,-0.4l-25,-11.1c-2.5,-1.1 -3.7,-4.1 -2.5,-6.6c1.1,-2.5 4.1,-3.7 6.6,-2.5l24.9,11c2.5,1.1 3.7,4.1 2.5,6.6c-0.8,1.9 -2.6,3 -4.5,3z\"/>\n <path d=\"m40.5,86.6c-1.6,0 -2.5,-0.4 -3.1,-0.7c-1.7,-0.8 -6.3,-2.8 -9,-21.6c-0.4,-2.8 -2.3,-17.3 0.1,-22.7l12.9,-28.9c1.7,-3.8 4.8,-6.7 8.7,-8.2c3.9,-1.5 8.1,-1.4 12,0.3l19.2,8.6c2.5,1.1 3.7,4.1 2.5,6.6c-1.1,2.5 -4.1,3.7 -6.6,2.5l-19.2,-8.6c-1.4,-0.6 -2.9,-0.7 -4.3,-0.1c-1.4,0.5 -2.5,1.6 -3.1,3l-12.9,28.9c-0.4,1.1 -0.7,7.1 0.5,16.1c1,7.8 2.5,12.6 3.5,14.6c2.1,-0.6 6.7,-2.7 13.2,-7.2c7.5,-5.1 11.7,-9.3 12.3,-10.5l12.8,-28.8c1.1,-2.5 4.1,-3.7 6.6,-2.5c2.5,1.1 3.7,4.1 2.5,6.6l-12.8,28.9c-2.4,5.5 -14.4,13.7 -16.8,15.3c-10.4,6.9 -15.9,8.4 -19,8.4z\"/>\n</svg>",
"title": "$:/core/images/mark",
"tags": "$:/tags/Image",
"modified": "20180225121759458"
},
"$:/language/Buttons/Mark/Hint": {
"text": "Wrap marking around selected text",
"title": "$:/language/Buttons/Mark/Hint",
"tags": "",
"modified": "20180202085332009",
"created": "20180201203856122"
},
"$:/language/Buttons/Mark/Caption": {
"text": "mark",
"title": "$:/language/Buttons/Mark/Caption",
"tags": "",
"modified": "20180201203753667",
"created": "20180201203736513"
},
"$:/config/shortcuts/mark": {
"text": "Ctrl+J",
"title": "$:/config/shortcuts/mark",
"modified": "20180203171849169",
"created": "20180203171812538"
},
"$:/config/ShortcutInfo/mark": {
"text": "{{$:/language/Buttons/Mark/Hint}}",
"title": "$:/config/ShortcutInfo/mark",
"tags": "",
"modified": "20180202085255573",
"created": "20180202085229894"
},
"$:/language/Buttons/Mark/Caption/New": {
"text": "Add your own",
"title": "$:/language/Buttons/Mark/Caption/New",
"tags": "",
"modified": "20180201203825341",
"created": "20180201203813638"
},
"$:/language/Buttons/Mark/New/Text": {
"text": "Marking code (CSS) prefixed by @@, e.g: @@background-color:Cyan;\n\nThe closing @@ will be added automatically upon applying.\n\nRemember to add a descriptive title in the caption field!\n\n",
"title": "$:/language/Buttons/Mark/New/Text",
"tags": "",
"modified": "20181107160532796",
"created": "20180201203941132"
},
"$:/language/Buttons/Mark/New/Title": {
"text": "Name as shown in menu",
"title": "$:/language/Buttons/Mark/New/Title",
"tags": "",
"modified": "20180201204039961",
"created": "20180201204029720"
},
"$:/plugins/tg/mark-button/readme": {
"created": "20180203172237667",
"creator": "TonGerner",
"text": "A button ({{$:/core/images/mark}}) for the Editor toolbar that applies coloring or highlighting to the selected text<br>\nAssigned shortcut: {{$:/config/shortcuts/mark}}\n\nYou can add new entries by:\n\n* 'Add your own' menu entry\n* Cloning a Mark button e.g. $:/language/Marklets/Blue\n** Adjust title, code and caption\n** Save\n",
"title": "$:/plugins/tg/mark-button/readme",
"tags": "",
"modified": "20191230201401397",
"modifier": "TonGerner"
},
"$:/language/Marklets/Highlight-lightcyan": {
"created": "20191230202243900",
"creator": "TonGerner",
"text": "@@background-color:LightCyan;",
"tags": "$:/tags/TextEditor/Marklet",
"caption": "Highlight LightCyan",
"title": "$:/language/Marklets/Highlight-lightcyan",
"modified": "20191230203033469",
"modifier": "TonGerner"
}
}
}
{
"tiddlers": {
"$:/config/ShortcutInfo/newline": {
"text": "{{$:/language/Buttons/Newline/Hint}}",
"title": "$:/config/ShortcutInfo/newline",
"tags": "",
"modified": "20161107175414267",
"created": "20161107175327666"
},
"$:/config/shortcuts/newline": {
"text": "shift+enter",
"title": "$:/config/shortcuts/newline",
"tags": "",
"modified": "20161107134538633",
"created": "20161107134450649"
},
"$:/core/images/newline": {
"created": "20161107132423404",
"text": "<svg class=\"tgc-newline tc-image-button\" height=\"22pt\" width=\"22pt\" viewBox=\"0 0 750 750\"><path d=\"m 625,125 0,125 -125,0 -125,0 L 374.8,125.2 374.5,0.5 187.2,187.8 0,375.1 187.5,562.6 375,750.09996 l 0,-125 L 375,500 568.8,499.7 c 106.5,-0.1 195.1,-0.6 196.7,-1 3.1,-0.7 8.9,-1.8 11.5,-2.2 2.8,-0.4 16.5,-4.4 21,-6.2 0.8,-0.3 2,-0.7 2.6,-0.8 2.6,-0.6 20.4,-10 25.7,-13.7 24.2,-16.4 38.7,-38.6 46,-70.1 2.1,-9.2 2.1,-9.8 2.4,-207.5 L 875.1,0 750,0 625,0 l 0,125 z\"/></svg>\n",
"title": "$:/core/images/newline",
"tags": "$:/tags/Image",
"modified": "20170726075734278"
},
"$:/core/ui/EditorToolbar/newline": {
"created": "20170410184211945",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n text=\"<br>\"\n/>\n",
"title": "$:/core/ui/EditorToolbar/newline",
"tags": "$:/tags/EditorToolbar",
"shortcuts": "((newline))",
"modifier": "TonGerner",
"modified": "20170606174817899",
"icon": "$:/core/images/newline",
"description": "{{$:/language/Buttons/Newline/Hint}}",
"creator": "TonGerner",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"caption": "{{$:/language/Buttons/Newline/Caption}}"
},
"$:/language/Buttons/Newline/Caption": {
"text": "Insert newline",
"title": "$:/language/Buttons/Newline/Caption",
"tags": "",
"modified": "20161107174925377",
"created": "20161107174804925"
},
"$:/language/Buttons/Newline/Hint": {
"text": "Insert a newline",
"title": "$:/language/Buttons/Newline/Hint",
"tags": "",
"modified": "20161107175016783",
"created": "20161107174943474"
},
"$:/plugins/tg/newline-button/readme": {
"created": "20170519143449489",
"creator": "TonGerner",
"text": "A button ({{$:/core/images/newline}}) for the Editor toolbar adds a newline<br>\nAssigned shortcut: {{$:/config/shortcuts/newline}}",
"title": "$:/plugins/tg/newline-button/readme",
"tags": "",
"modified": "20191230200951816",
"modifier": "TonGerner"
}
}
}
{
"tiddlers": {
"$:/core/ui/EditorToolbar/note": {
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"\"\"<<<\n''Note:''<br>\"\"\"\n\tsuffix=\"\"\"\n<<<\n\"\"\"\n/>\n",
"title": "$:/core/ui/EditorToolbar/note",
"tags": "$:/tags/EditorToolbar",
"shortcuts": "((note))",
"modified": "20170719171653083",
"icon": "$:/core/images/note",
"description": "{{$:/language/Buttons/Note/Hint}}",
"created": "20170719160852857",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"caption": "{{$:/language/Buttons/Note/Caption}}"
},
"$:/core/images/note": {
"text": "<svg class=\"tgc-note tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 22 22\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\" class=\"tgc-note tc-image-button\">\n <g>\n <title>Layer 1</title>\n <g stroke=\"null\" id=\"svg_1\">\n <path stroke=\"null\" id=\"svg_2\" d=\"m21.09357,15.71311l-19.89809,0c-0.23878,0 -0.39796,0.16406 -0.39796,0.41016s0.15918,0.41016 0.39796,0.41016l19.89809,0c0.23878,0 0.39796,-0.16406 0.39796,-0.41016s-0.15918,-0.41016 -0.39796,-0.41016z\"/>\n <path stroke=\"null\" id=\"svg_3\" d=\"m21.09357,13.25218l-19.89809,0c-0.23878,0 -0.39796,0.16406 -0.39796,0.41016s0.15918,0.41016 0.39796,0.41016l19.89809,0c0.23878,0 0.39796,-0.16406 0.39796,-0.41016s-0.15918,-0.41016 -0.39796,-0.41016z\"/>\n <path stroke=\"null\" id=\"svg_4\" d=\"m21.09357,10.79125l-5.57147,0c-0.23878,0 -0.39796,0.16406 -0.39796,0.41016s0.15918,0.41016 0.39796,0.41016l5.57147,0c0.23878,0 0.39796,-0.16406 0.39796,-0.41016s-0.15918,-0.41016 -0.39796,-0.41016z\"/>\n <path stroke=\"null\" id=\"svg_5\" d=\"m21.09357,8.33032l-5.57147,0c-0.23878,0 -0.39796,0.16406 -0.39796,0.41016s0.15918,0.41016 0.39796,0.41016l5.57147,0c0.23878,0 0.39796,-0.16406 0.39796,-0.41016s-0.15918,-0.41016 -0.39796,-0.41016z\"/>\n <path stroke=\"null\" id=\"svg_6\" d=\"m21.09357,5.86939l-5.57147,0c-0.23878,0 -0.39796,0.16406 -0.39796,0.41016s0.15918,0.41016 0.39796,0.41016l5.57147,0c0.23878,0 0.39796,-0.16406 0.39796,-0.41016s-0.15918,-0.41016 -0.39796,-0.41016z\"/>\n <path stroke=\"null\" id=\"svg_7\" d=\"m15.5221,4.22877l5.57147,0c0.23878,0 0.39796,-0.16406 0.39796,-0.41016s-0.15918,-0.41016 -0.39796,-0.41016l-5.57147,0c-0.23878,0 -0.39796,0.16406 -0.39796,0.41016s0.15918,0.41016 0.39796,0.41016z\"/>\n <path stroke=\"null\" id=\"svg_8\" d=\"m11.54249,18.17404l-10.34701,0c-0.23878,0 -0.39796,0.16406 -0.39796,0.41016s0.15918,0.41016 0.39796,0.41016l10.34701,0c0.23878,0 0.39796,-0.16406 0.39796,-0.41016s-0.15918,-0.41016 -0.39796,-0.41016z\"/>\n <path stroke=\"null\" id=\"svg_9\" d=\"m3.98121,12.10375c1.75103,0 3.18369,-1.47656 3.18369,-3.28124c0,-1.47656 -0.95511,-2.78905 -2.30818,-3.19921c0.15918,-0.24609 0.71633,-0.98437 1.19389,-1.47656c0.15918,-0.16406 0.23878,-0.49219 0.15918,-0.73828c-0.07959,-0.24609 -0.31837,-0.41016 -0.63674,-0.41016l-0.15918,0c-2.62655,0.57422 -4.61636,2.95312 -4.61636,5.8242c0,1.80468 1.43266,3.28124 3.18369,3.28124zm1.19389,-8.2031c-0.47755,0.57422 -1.19389,1.47656 -1.11429,2.05078c0.07959,0.24609 0.23878,0.41016 0.47755,0.41016c1.11429,0.32812 1.83062,1.3125 1.83062,2.46093c0,1.39453 -1.11429,2.46093 -2.38777,2.46093s-2.38777,-1.14843 -2.38777,-2.46093c0,-2.29687 1.51225,-4.26561 3.58166,-4.92186z\"/>\n <path stroke=\"null\" id=\"svg_10\" d=\"m11.14452,12.10375c1.75103,0 3.18369,-1.47656 3.18369,-3.28124c0,-1.47656 -0.95511,-2.78905 -2.30818,-3.19921c0.15918,-0.32812 0.63674,-0.98437 1.11429,-1.47656c0.15918,-0.16406 0.23878,-0.49219 0.15918,-0.73828c-0.07959,-0.24609 -0.31837,-0.41016 -0.63674,-0.41016l-0.15918,0c-2.62655,0.57422 -4.53676,2.95312 -4.53676,5.8242c0,1.80468 1.43266,3.28124 3.18369,3.28124zm1.11429,-8.2031c-0.47755,0.57422 -1.19389,1.47656 -1.0347,2.05078c0.07959,0.24609 0.23878,0.41016 0.47755,0.41016c1.11429,0.24609 1.83062,1.23047 1.83062,2.3789c0,1.39453 -1.11429,2.46093 -2.38777,2.46093s-2.38777,-1.14843 -2.38777,-2.46093c0,-2.21484 1.43266,-4.18358 3.50206,-4.83983z\"/>\n </g>\n </g>\n</svg>",
"title": "$:/core/images/note",
"tags": "$:/tags/Image",
"modified": "20171030112427171",
"created": "20170719161944880"
},
"$:/language/Buttons/Note/Caption": {
"text": "note",
"title": "$:/language/Buttons/Note/Caption",
"modified": "20170719161156357",
"created": "20170719161151030"
},
"$:/language/Buttons/Note/Hint": {
"text": "Apply note formatting to selection",
"title": "$:/language/Buttons/Note/Hint",
"modified": "20170719161312162",
"created": "20170719161252651"
},
"$:/config/ShortcutInfo/note": {
"text": "{{$:/language/Buttons/Note/Hint}}",
"title": "$:/config/ShortcutInfo/note",
"modified": "20170719161356153",
"created": "20170719161350195"
},
"$:/config/shortcuts/note": {
"created": "20170719161441372",
"text": "alt-Q",
"title": "$:/config/shortcuts/note",
"modified": "20170719191910823"
},
"$:/plugins/tg/note-button/readme": {
"created": "20170719185745040",
"creator": "TonGerner",
"text": "A button ({{$:/core/images/note}}) for the Editor toolbar that applies 'note' formatting to the selected text<br>\nAssigned shortcut: {{$:/config/shortcuts/note}}",
"title": "$:/plugins/tg/note-button/readme",
"modified": "20191230201225154",
"modifier": "TonGerner"
}
}
}
{
"tiddlers": {
"$:/language/Buttons/PrettyLink/Caption": {
"created": "20160407022227381",
"text": "pretty link",
"creator": "TonGerner",
"modified": "20170410193443253",
"modifier": "TonGerner",
"tags": "ske",
"title": "$:/language/Buttons/PrettyLink/Caption"
},
"$:/language/Buttons/PrettyLink/Hint": {
"created": "20150129182918006",
"text": "Apply a pretty link to selection",
"creator": "TonGerner",
"modified": "20170410193356098",
"modifier": "TonGerner",
"tags": "ske",
"title": "$:/language/Buttons/PrettyLink/Hint"
},
"$:/config/shortcuts/prettylink": {
"text": "ctrl+shift+A",
"title": "$:/config/shortcuts/prettylink",
"tags": "",
"modified": "20170609130314790",
"created": "20170519145625785"
},
"$:/config/ShortcutInfo/prettylink": {
"created": "20170519145550948",
"text": "{{$:/language/Buttons/PrettyLink/Hint}}",
"title": "$:/config/ShortcutInfo/prettylink",
"tags": "",
"modified": "20170519153121291"
},
"$:/core/images/prettylink": {
"created": "20160309031133028",
"text": "<svg class=\"tgc-prettylink tc-image-button\" width=\"22\" height=\"22\" viewBox=\"0 0 1000 1000\">\n<path d=\"M2.107 512.374v311.47h121.08v-48.82h-58.58v-525.3h58.58v-48.82H2.107v311.47zM176.793 512.374v311.47h121.08v-48.82h-58.58v-525.3h58.58v-48.82h-121.08v311.47zM834.761 512.991l1.598-311.466-60.54-.31-60.539-.31-.125 24.41-.125 24.409 29.29.15 29.29.15-1.348 262.647-1.347 262.646-29.29-.15-29.289-.15-.125 24.41-.125 24.41 60.539.31 60.54.31 1.596-311.466zM998.317 512.991l1.597-311.466-60.539-.31-60.54-.31-.124 24.409-.125 24.41 29.29.15 29.289.15-1.347 262.647-1.347 262.646-29.29-.15-29.29-.15-.124 24.41-.126 24.41 60.54.31 60.539.31 1.597-311.466zM409.333 201.333h61.333V824h-61.333z\"/><circle r=\"37.357\" cy=\"518.667\" cx=\"322.667\"/><circle r=\"37.357\" cy=\"518.667\" cx=\"556\"/><circle r=\"37.357\" cy=\"518.667\" cx=\"681.333\"/></svg>",
"title": "$:/core/images/prettylink",
"tags": "$:/tags/Image",
"modifier": "TonGerner",
"modified": "20181130140615869",
"creator": "TonGerner"
},
"$:/core/ui/EditorToolbar/prettylink": {
"created": "20160309031656272",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[link|\"\n\tsuffix=\"]]\"\n/>",
"caption": "{{$:/language/Buttons/PrettyLink/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/PrettyLink/Hint}}",
"icon": "$:/core/images/prettylink",
"modified": "20171030131328870",
"tags": "$:/tags/EditorToolbar",
"title": "$:/core/ui/EditorToolbar/prettylink",
"shortcuts": "((prettylink))"
},
"$:/plugins/tg/prettylink-button/readme": {
"text": "A button ({{$:/core/images/prettylink}}) for the Editor toolbar that creates a 'pretty link' (`[[link|abc]]`)<br>\nAssigned shortcut: {{$:/config/shortcuts/prettylink}}",
"title": "$:/plugins/tg/prettylink-button/readme",
"tags": "",
"modifier": "TonGerner",
"modified": "20191230200234747",
"creator": "TonGerner",
"created": "20170519144910845"
}
}
}
{
"tiddlers": {
"$:/plugins/tg/tiddlersbar/button": {
"created": "20170325114731405",
"text": "<$fieldmangler tiddler=\"$:/plugins/tg/tiddlersbar/styles\">\n<$list filter=\"[[$:/plugins/tg/tiddlersbar/styles]tag[$:/tags/Stylesheet]]\"><$button message=\"tm-remove-tag\" tooltip=\"Hide Tiddlersbar\" param=\"$:/tags/Stylesheet\" class=<<tv-config-toolbar-class>>>\n<span class=\"tgc-active-indicator\">\n{{$:/plugins/tg/tiddlersbar/image-tiddlersbar-on}}\n</span>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tgc-active-indicator\">\n<$text text=\"tiddlersbar\"/>\n</span>\n</$list>\n</$button>\n</$list>\n<$list filter=\"[[$:/plugins/tg/tiddlersbar/styles]!tag[$:/tags/Stylesheet]]\">\n<$button message=\"tm-add-tag\" tooltip=\"Show tiddlersbar\" param=\"$:/tags/Stylesheet\" class=<<tv-config-toolbar-class>>>{{$:/plugins/tg/tiddlersbar/image-tiddlersbar-off}}\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<$text text=\"tiddlersbar\"/>\n</$list>\n</$button>\n</$list>\n</$fieldmangler>\n",
"title": "$:/plugins/tg/tiddlersbar/button",
"tags": "$:/tags/PageControls",
"modifier": "TonGerner",
"modified": "20200323103546936",
"description": "Toggle tiddlersbar on/off",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/tiddlersbar/image-tiddlersbar-on}} tiddlersbar"
},
"$:/plugins/tg/tiddlersbar/icon": {
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\">\n <path fill=\"#a0a0ff\" stroke=\"#a0a0ff\" stroke-width=\"1.2218\" stroke-miterlimit=\"4\" d=\"m48.98237,97.86909l-41.98313,-24.239l0,-48.47796l41.98313,-24.23897l41.98313,24.23897l0,48.47796l-41.98313,24.239z\" id=\"path4142\"/>\n <rect fill=\"#000000\" stroke=\"#000000\" stroke-width=\"8.78819\" stroke-miterlimit=\"4\" stroke-opacity=\"0\" y=\"25.08274\" x=\"8.68744\" height=\"9.10985\" width=\"16.25652\" id=\"rect4807\"/>\n <rect fill=\"#000000\" stroke=\"#000000\" stroke-width=\"8.78819\" stroke-miterlimit=\"4\" stroke-opacity=\"0\" id=\"rect4809\" width=\"16.25652\" height=\"9.10985\" x=\"54.08981\" y=\"25.08274\"/>\n <rect fill=\"#000000\" stroke=\"#000000\" stroke-width=\"8.78819\" stroke-miterlimit=\"4\" stroke-opacity=\"0\" y=\"25.08274\" x=\"31.38863\" height=\"9.10985\" width=\"16.25652\" id=\"rect4820\"/>\n</svg>",
"type": "image/svg+xml",
"title": "$:/plugins/tg/tiddlersbar/icon",
"tags": "",
"modified": "20191228200121464",
"created": "20170325114817530"
},
"$:/plugins/tg/tiddlersbar/image-tiddlersbar-off": {
"text": "<svg class=\"tgc-image-tiddlersbar-off tc-image-button\" viewBox=\"0 0 22 22\" width=\"22pt\" height=\"22pt\"><path d=\"m7.3572,12.30506c-0.13915,-0.39832 -0.23057,-0.82001 -0.23057,-1.26429c0,-2.13671 1.74588,-3.87591 3.889,-3.87591c0.44658,0 0.8689,0.09111 1.26856,0.2298l1.84701,-1.84079c-1.05983,-0.44185 -2.12289,-0.73293 -3.11557,-0.73293c-6.10492,0 -10.92187,6.21983 -10.92187,6.21983s1.75316,2.2504 4.47392,4.04523l2.78953,-2.78094zm9.7407,-5.14664l-2.47239,2.46407c0.17556,0.44024 0.27911,0.91757 0.27911,1.4191c0,2.1351 -1.74588,3.87591 -3.889,3.87591c-0.50321,0 -0.98135,-0.10321 -1.42389,-0.27818l-1.99749,1.99157c1.07358,0.38622 2.22078,0.63134 3.42138,0.63134c4.6689,0 10.92188,-6.22064 10.92188,-6.22064s-2.13664,-2.11816 -4.8396,-3.88316zm1.63747,-5.05392l-16.73636,16.68002l1.14477,1.14173l16.73555,-16.68083l-1.14396,-1.14092z\"/></svg>",
"title": "$:/plugins/tg/tiddlersbar/image-tiddlersbar-off",
"tags": "",
"modifier": "TonGerner",
"modified": "20191228200145294",
"creator": "TonGerner",
"created": "20170325114839090"
},
"$:/plugins/tg/tiddlersbar/image-tiddlersbar-on": {
"text": "<svg class=\"tgc-image-tiddlersbar-on tc-image-button\" viewBox=\"0 0 22 22\" width=\"22pt\" height=\"22pt\">\n<path d=\"m10.98438,4.786c-6.10492,0 -10.92187,6.2141 -10.92187,6.2141s4.81695,6.2149 10.92187,6.2149c4.6689,0 10.92188,-6.2149 10.92188,-6.2149s-6.25298,-6.2141 -10.92188,-6.2141zm0,10.08643c-2.14311,0 -3.889,-1.73759 -3.889,-3.87233s1.74588,-3.87233 3.889,-3.87233s3.889,1.7384 3.889,3.87233s-1.74588,3.87233 -3.889,3.87233zm0,-6.13273c-1.25318,0 -2.27013,1.01178 -2.27013,2.2604c0,1.24862 1.01614,2.2604 2.27013,2.2604c1.25399,0 2.27013,-1.01179 2.27013,-2.2604c0,-1.24781 -1.01614,-2.2604 -2.27013,-2.2604z\"/>\n</svg>",
"title": "$:/plugins/tg/tiddlersbar/image-tiddlersbar-on",
"tags": "",
"modifier": "TonGerner",
"modified": "20191228200159990",
"creator": "TonGerner",
"created": "20170325114911997"
},
"$:/plugins/tg/tiddlersbar/license": {
"text": "!!! Buggy j's ~StoryTopTabs plugin\n\nMIT License\n\nCopyright © Jeffrey Wikinson aka Buggyj — 2015\n\n<hr>\n\n[[Tiddlersbar plugin|http://tongerner.tiddlyspot.com/#Tiddlersbar%20plugin]] © Ton Gerner — 2018-2020\n\nMIT License: https://opensource.org/licenses/MIT\n",
"title": "$:/plugins/tg/tiddlersbar/license",
"tags": "",
"modified": "20191228200225470",
"created": "20180124182128080"
},
"$:/plugins/tg/tiddlersbar/readme": {
"text": "This plugin - based on Buggy j's [[StoryTopTabs plugin|http://bjtools.tiddlyspot.com/#StoryTopTabs]] - creates a 'Tiddlersbar' of open tiddlers (as tabs) on top of the screen. It works best in Zoomin view.<br>\nThe Tiddlersbar can be toggled on/off (<<icn $:/plugins/tg/tiddlersbar/image-tiddlersbar-on>>/<<icn $:/plugins/tg/tiddlersbar/image-tiddlersbar-off>>) with a button in the Page toolbar and/or the View toolbar.\n\n<<<\n''Note:''<br>''This plugin needs my $:/plugins/tg/layout plugin for general layout settings (available at http://tongerner.tiddlyspot.com/).''\n<<<\n\nSettings for the layout can be found in ''~ControlPanel > Appearance > [[Plugin tweaks|$:/plugins/tg/layout/tweaks]]''.\n",
"title": "$:/plugins/tg/tiddlersbar/readme",
"tags": "",
"modifier": "TonGerner",
"modified": "20200315132513150",
"creator": "TonGerner",
"created": "20170325115014248"
},
"$:/plugins/tg/tiddlersbar/settings": {
"created": "20170325115624509",
"text": "!!Tiddlersbar settings\n@@.brown ''Toggle tiddlersbar in ~PageControls''@@<br>\n<$checkbox tiddler=\"$:/plugins/tg/tiddlersbar/button\" tag=\"$:/tags/PageControls\"> Button active</$checkbox>\n\n@@.brown ''Toggle tiddlersbar in ~ViewToolbar ''@@<br>\n<$checkbox tiddler=\"$:/plugins/tg/tiddlersbar/button\" tag=\"$:/tags/ViewToolbar\"> Button active</$checkbox>\n\n<table class=\"tablestyle\">\n<<tableRow \"Left 'Tiddlersbar'\" \"$:/plugins/tg/tiddlersbar/styles\" \"left-tiddlersbar\">>\n<<tableRow \"Top 'Tiddlersbar'\" \"$:/plugins/tg/tiddlersbar/styles\" \"top-tiddlersbar\">>\n<<tableRow \"Font size 'Tiddlersbar'\" \"$:/plugins/tg/tiddlersbar/styles\" \"tiddlersbar-font-size\">>\n<<tableRow \"Background color 'Tiddler tabs'\" \"$:/plugins/tg/tiddlersbar/styles\" \"tiddlersbar-color\">>\n<<tableRow \"Text color 'Tiddler tabs'\" \"$:/plugins/tg/tiddlersbar/styles\" \"tiddlersbar-text-color\">>\n<<tableRow \"Background color 'Tiddler tab selected'\" \"$:/plugins/tg/tiddlersbar/styles\" \"tiddlersbar-selected-color\">>\n<<tableRow \"Text color 'Tiddler tab selected'\" \"$:/plugins/tg/tiddlersbar/styles\" \"tiddlersbar-selected-text-color\">>\n<<tableRow \"Rounded corners 'tiddler tabs'\" \"$:/plugins/tg/tiddlersbar/styles\" \"tiddlersbar-border-radius\">>\n</table>\n<$button tooltip=\"Help\">\n<$action-sendmessage $message=\"tm-open-window\" $param=\"$:/plugins/tg/tiddlersbar/settings-help\" height=\"380px\" width=\"700px\"/>Help</$button>\n",
"title": "$:/plugins/tg/tiddlersbar/settings",
"tags": "$:/tags/plugin-tweaks",
"order": "7",
"modifier": "TonGerner",
"modified": "20191228205719769",
"list-after": "$:/plugins/tg/layout",
"creator": "TonGerner",
"caption": "Tiddlersbar"
},
"$:/plugins/tg/tiddlersbar/settings-help": {
"text": "|Item |Description |Default |h\n|Toggle tiddlersbar in ~PageControls |'Toggle tiddlersbar' button in ~PageControls| <input type=\"checkbox\" checked /> |\n|Toggle tiddlersbar in ~ViewToolbar |'Toggle tiddlersbar' button in ~ViewToolbar| <input type=\"checkbox\" /> |\n|Left 'Tiddlersbar' |Start (from the left) of the Tiddlersbar| 42px |\n|Top 'Tiddlersbar' |Start (from the top) of the Tiddlersbar| 10px |\n|Font size 'Tiddlersbar' |Font size of Tiddlersbar | 0.9em |\n|Background color 'Tiddler tabs' |Background color of breadcrumbs | `<<colour tab-background>>` |\n|Text color 'Tiddler tabs' |Text color of tiddler tabs | `<<colour tab-foreground>>` |\n|Background color 'Tiddler tab selected' |Background color of selected tiddler tab| `<<colour tab-background-selected>>` |\n|Text color 'Tiddler tab selected' |Text color of selected tiddler tab | `<<colour tab-foreground-selected>>` |\n|Rounded corners 'tiddler tabs' |Rounded corners of tiddlersbar | 1px |\n",
"title": "$:/plugins/tg/tiddlersbar/settings-help",
"tags": "",
"modifier": "TonGerner",
"modified": "20191230170358959",
"creator": "TonGerner",
"created": "20170325115648290"
},
"$:/plugins/tg/tiddlersbar/style-no-tiddlersbar": {
"text": "/* DEFAULT: HIDDEN TIDDLERSBAR */\n.tgc-tiddlersbar {\n display: none;\n}",
"type": "text/css",
"title": "$:/plugins/tg/tiddlersbar/style-no-tiddlersbar",
"tags": "$:/tags/Stylesheet",
"modifier": "TonGerner",
"modified": "20191228200615839",
"creator": "TonGerner",
"created": "20170325115709994"
},
"$:/plugins/tg/tiddlersbar/styles": {
"text": "<pre>/* BREADCRUMBS TOP MENU */\n.tgc-tiddlersbar {\n display: block;\n position: fixed;\n left: 0;\n top: {{!!top-tiddlersbar}}; /* vertical start of tiddlersbar 'menu' */\n width: calc(100% - 60px); /* right margin for '>>' icon */\n margin-left: {{!!left-tiddlersbar}};\n z-index: 900;\n}\n\n/* TIDDLERSBAR */\n.tgc-tiddlersbar button {\n font-size: {{!!tiddlersbar-font-size}};\n color: {{!!tiddlersbar-text-color}};\n padding: 3px 5px 3px 5px;\n border: none;\n border-radius: {{!!tiddlersbar-border-radius}};\n background: none;\n background-color: {{!!tiddlersbar-color}};\n border-left: 1px solid #cccccc;\n border-top: 1px solid #cccccc;\n border-right: 1px solid #cccccc;\n}\n\n/* TIDDLERBAR SELECTED */\n.tgc-tiddlersbar button.tgc-tiddlersbar-selected {\n color: {{!!tiddlersbar-selected-text-color}};\n background: none;\n background-color: {{!!tiddlersbar-selected-color}};\n}\n/* HOVER over 'x' */\n.tgc-tiddlersbar button.tgc-x:hover {\n font-weight: bold;\n}\n.tgc-tiddlersbar button.tgc-tiddlersbar-selected.tgc-x:hover {\n font-weight: bold;\n}\n</pre>",
"top-tiddlersbar": "10px",
"title": "$:/plugins/tg/tiddlersbar/styles",
"tiddlersbar-text-color": "<<colour tab-foreground>>",
"tiddlersbar-selected-text-color": "<<colour tab-foreground-selected>>",
"tiddlersbar-selected-color": "<<colour tab-background-selected>>",
"tiddlersbar-font-size": "0.9em",
"tiddlersbar-color": "<<colour tab-background>>",
"tiddlersbar-border-radius": "1px",
"tags": "$:/tags/Stylesheet",
"modifier": "TonGerner",
"modified": "20191228200650043",
"list-after": "$:/plugins/tg/tiddlersbar/style-no-tiddlersbar",
"left-tiddlersbar": "42px",
"creator": "TonGerner",
"created": "20170325123352694"
},
"$:/plugins/tg/tiddlersbar/tiddlersbar": {
"text": "<div class=\"tgc-tiddlersbar\" >\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" variable=\"currentTab\">\n<$reveal type=\"match\" state=\"$:/HistoryList!!current-tiddler\" text=<<currentTab>>>\n<div style=\"display:inline-block;\">\n<$button to=<<currentTab>> class=\"tgc-tiddlersbar-selected\" style=\"margin-right: -0.4em; border-right: 0.0em\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$button>\n<$button message=\"tm-close-tiddler\" param=<<currentTab>> class=\"tgc-tiddlersbar-selected tgc-x\" style=\"border-left: 0.0em;\">X</$button></div></$reveal>\n<$reveal type=\"nomatch\" state=\"$:/HistoryList!!current-tiddler\" text=<<currentTab>>>\n<div style=\"display:inline-block;\">\n<$button to=<<currentTab>> style=\"margin-right: 0.0em;\" >\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$button><$button message=\"tm-close-tiddler\" param=<<currentTab>> class=\"tgc-x\">\nX</$button></div></$reveal>\n</$list>\n</div>\n",
"title": "$:/plugins/tg/tiddlersbar/tiddlersbar",
"tags": "$:/tags/PageTemplate",
"modifier": "TonGerner",
"modified": "20191228200736188",
"creator": "TonGerner",
"created": "20170325114702089"
}
}
}
<pre>/* BREADCRUMBS TOP MENU */
.tgc-tiddlersbar {
display: block;
position: fixed;
left: 0;
top: {{!!top-tiddlersbar}}; /* vertical start of tiddlersbar 'menu' */
width: calc(100% - 60px); /* right margin for '>>' icon */
margin-left: {{!!left-tiddlersbar}};
z-index: 900;
}
/* TIDDLERSBAR */
.tgc-tiddlersbar button {
font-size: {{!!tiddlersbar-font-size}};
color: {{!!tiddlersbar-text-color}};
padding: 3px 5px 3px 5px;
border: none;
border-radius: {{!!tiddlersbar-border-radius}};
background: none;
background-color: {{!!tiddlersbar-color}};
border-left: 1px solid #cccccc;
border-top: 1px solid #cccccc;
border-right: 1px solid #cccccc;
}
/* TIDDLERBAR SELECTED */
.tgc-tiddlersbar button.tgc-tiddlersbar-selected {
color: {{!!tiddlersbar-selected-text-color}};
background: none;
background-color: {{!!tiddlersbar-selected-color}};
}
/* HOVER over 'x' */
.tgc-tiddlersbar button.tgc-x:hover {
font-weight: bold;
}
.tgc-tiddlersbar button.tgc-tiddlersbar-selected.tgc-x:hover {
font-weight: bold;
}
</pre>
{
"tiddlers": {
"$:/core/images/timestamp": {
"created": "20161204161241276",
"text": "<svg class=\"tgc-timestamp tc-image-button\"height=\"20pt\" width=\"20pt\" viewBox=\"0 0 20 20\"><path d=\"M10,0 C4.5,0 0,4.5 0,10 C0,15.5 4.5,20 10,20 C15.5,20 20,15.5 20,10 C20,4.5 15.5,0 10,0 L10,0 Z M10,18 C5.6,18 2,14.4 2,10 C2,5.6 5.6,2 10,2 C14.4,2 18,5.6 18,10 C18,14.4 14.4,18 10,18 Z M10.5,5 L9,5 L9,11 L14.2,14.2 L15,12.9 L10.5,10.2 L10.5,5 Z\"></svg>",
"title": "$:/core/images/timestamp",
"tags": "$:/tags/Image",
"modifier": "TonGerner",
"modified": "20170726075430605",
"creator": "TonGerner"
},
"$:/core/ui/EditorToolbar/timestamp": {
"created": "20161118171456554",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<now>>\n/>",
"title": "$:/core/ui/EditorToolbar/timestamp",
"tags": "$:/tags/EditorToolbar",
"shortcuts": "((timestamp))",
"modifier": "TonGerner",
"modified": "20170726074415991",
"icon": "$:/core/images/timestamp",
"description": "{{$:/language/Buttons/TimeStamp/Hint}}",
"creator": "TonGerner",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"caption": "{{$:/language/Buttons/TimeStamp/Caption}}"
},
"$:/language/Buttons/TimeStamp/Caption": {
"text": "insert timestamp",
"title": "$:/language/Buttons/TimeStamp/Caption",
"modifier": "TonGerner",
"modified": "20170409182351950",
"creator": "TonGerner",
"created": "20170409182341874"
},
"$:/language/Buttons/TimeStamp/Hint": {
"text": "Insert timestamp",
"title": "$:/language/Buttons/TimeStamp/Hint",
"modifier": "TonGerner",
"modified": "20170409182417864",
"creator": "TonGerner",
"created": "20170409182409954"
},
"$:/config/ShortcutInfo/timestamp": {
"created": "20161204162358226",
"text": "{{$:/language/Buttons/TimeStamp/Hint}}",
"title": "$:/config/ShortcutInfo/timestamp",
"modifier": "TonGerner",
"modified": "20171030143250967",
"creator": "TonGerner"
},
"$:/config/shortcuts/timestamp": {
"text": "ctrl+D",
"title": "$:/config/shortcuts/timestamp",
"modified": "20161204165605507",
"created": "20161204162542451"
},
"$:/plugins/tg/image/readme": {
"created": "20200128201003880",
"creator": "TonGerner",
"title": "$:/plugins/tg/image/readme",
"modified": "20200128202239344",
"modifier": "TonGerner",
"text": "A button ({{$:/core/images/image}} ) for the Editor toolbar that applies the image macro to the selection.<br>\nAssigned shortcut: {{$:/config/shortcuts/image}}\n\n```\n\\define imagew(source,width)\n<a href=\"Images/$source$\" title=\"Klik voor een grotere versie (opent in een aparte tab)\" target=\"_blank\">\n <img src=\"Images/$source$\" width=\"$width$\" height=\"\"/>\n</a>\n\\end\n\n<<imagew image width>>\n```\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tg/toolbar/buttons/advanced-search": {
"text": "{{$:/core/ui/Buttons/advanced-search}}",
"title": "$:/plugins/tg/toolbar/buttons/advanced-search",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225154959155",
"description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
"creator": "TonGerner",
"created": "20150727113655362",
"caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/calendar": {
"created": "20180226090035324",
"text": "<div class=\"tgc-dropdown\">\n<$button class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/calendar}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"show date\"/></span>\n</$list>\n</$button>\n<div class=\"tgc-dropdown-content\">{{$:/plugins/tg/toolbar/images/calendar}}</div>\n</div>\n",
"title": "$:/plugins/tg/toolbar/buttons/calendar",
"tags": "$:/tags/TopLeftBar",
"modified": "20200130155617479",
"description": "Show date",
"caption": "{{$:/plugins/tg/toolbar/images/calendar}} show date"
},
"$:/plugins/tg/toolbar/buttons/close-all": {
"text": "{{$:/core/ui/Buttons/close-all}}",
"title": "$:/plugins/tg/toolbar/buttons/close-all",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225155146291",
"description": "{{$:/language/Buttons/CloseAll/Hint}}",
"creator": "TonGerner",
"created": "20150727113504402",
"caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/controlpanel": {
"text": "{{$:/core/ui/Buttons/control-panel}}",
"title": "$:/plugins/tg/toolbar/buttons/controlpanel",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225155215931",
"description": "{{$:/language/Buttons/ControlPanel/Hint}}",
"creator": "TonGerner",
"created": "20150727111608178",
"caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/corrupt-tiddler": {
"created": "20160212212247535",
"text": "\\define corrupt-tiddler-button(class)\n<$button to=\"$:/plugins/tg/toolbar/templates/corrupt-tiddler\" tooltip=\"Manage a corrupt tiddler\" class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/corrupt-tiddler}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"manage corrupt tiddler\"/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/plugins/tg/toolbar/buttons/corrupt-tiddler]]\" emptyMessage=<<corrupt-tiddler-button>>>\n<<corrupt-tiddler-button \"tc-selected\">>\n</$list>\n",
"title": "$:/plugins/tg/toolbar/buttons/corrupt-tiddler",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130145728597",
"description": "Manage a corrupt tiddler",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/corrupt-tiddler}} manage corrupt tiddler"
},
"$:/plugins/tg/toolbar/buttons/export-page": {
"text": "{{$:/core/ui/Buttons/export-page}}",
"title": "$:/plugins/tg/toolbar/buttons/export-page",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225161956287",
"description": "{{$:/language/Buttons/ExportPage/Hint}}",
"creator": "TonGerner",
"created": "20150727114546367",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/fold-all": {
"text": "{{$:/core/ui/Buttons/fold-all}}",
"title": "$:/plugins/tg/toolbar/buttons/fold-all",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162014148",
"description": "{{$:/language/Buttons/FoldAll/Hint}}",
"creator": "TonGerner",
"created": "20160111133242734",
"caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/full-screen": {
"text": "{{$:/core/ui/Buttons/full-screen}}",
"title": "$:/plugins/tg/toolbar/buttons/full-screen",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162042572",
"description": "{{$:/language/Buttons/FullScreen/Hint}}",
"creator": "TonGerner",
"created": "20150727085351568",
"caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/home": {
"text": "{{$:/core/ui/Buttons/home}}",
"title": "$:/plugins/tg/toolbar/buttons/home",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162103271",
"description": "{{$:/language/Buttons/Home/Hint}}",
"creator": "TonGerner",
"created": "20150727085124647",
"caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/import": {
"text": "{{$:/core/ui/Buttons/import}}",
"title": "$:/plugins/tg/toolbar/buttons/import",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162123530",
"description": "{{$:/language/Buttons/Import/Hint}}",
"creator": "TonGerner",
"created": "20150810090131830",
"caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/list-all": {
"created": "20150728202153771",
"text": "<$button tooltip=\"List all tiddlers\" popup=\"$:/state/popup/all\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/list-all}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"list all\"/></span>\n</$list>\n</$button>\n<$reveal type=\"popup\" state=\"$:/state/popup/all\">\n<div class=\"tc-drop-down tgc-font-size-menus\">\n\n:''All tiddlers''\n<$scrollable class='tgc-scrollable-list'>\n{{$:/core/ui/MoreSideBar/All}}\n</$scrollable>\n</div>\n</$reveal>",
"title": "$:/plugins/tg/toolbar/buttons/list-all",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130145807427",
"description": "List all tiddlers",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/list-all}} list all"
},
"$:/plugins/tg/toolbar/buttons/list-open-tiddlers": {
"created": "20150728143158416",
"text": "<$button tooltip=\"List open tiddlers\" popup=\"$:/state/popup/open\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/list-open}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"list open\"/></span>\n</$list>\n</$button>\n<$reveal type=\"popup\" state=\"$:/state/popup/open\">\n<div class=\"tc-drop-down tgc-font-size-menus\">\n\n:''Open tiddlers''\n<$scrollable class='tgc-scrollable-list'>\n<$list filter=\"[list[$:/StoryList]]+[sort[]]\"/>\n</$scrollable>\n</div>\n</$reveal>",
"title": "$:/plugins/tg/toolbar/buttons/list-open-tiddlers",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130145947875",
"description": "List open tiddlers",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/list-open}} list open"
},
"$:/plugins/tg/toolbar/buttons/list-recent": {
"created": "20150728201622065",
"text": "<$button tooltip=\"List recent tiddlers\" popup=\"$:/state/popup/recent\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/list-recent}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"list recent\"/></span>\n</$list>\n</$button>\n<$reveal type=\"popup\" state=\"$:/state/popup/recent\">\n<div class=\"tc-drop-down tgc-font-size-menus\">\n\n:''Recent tiddlers''\n<$scrollable class='tgc-scrollable-list'>\n{{$:/core/ui/MoreSideBar/Recent}}\n</$scrollable>\n</div>\n</$reveal>",
"title": "$:/plugins/tg/toolbar/buttons/list-recent",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130150034312",
"description": "List recent tiddlers",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/list-recent}} list recent"
},
"$:/plugins/tg/toolbar/buttons/list-untagged-tiddlers": {
"created": "20150728165824527",
"text": "<$button tooltip=\"List untagged tiddlers\" popup=\"$:/state/popup/untagged\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/list-untagged}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"list untagged\"/></span>\n</$list>\n</$button>\n<$reveal type=\"popup\" state=\"$:/state/popup/untagged\">\n<div class=\"tc-drop-down tgc-font-size-menus\">\n\n:''Untagged tiddlers''\n<$scrollable class='tgc-scrollable-list'>\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\"/>\n</$scrollable>\n</div>\n</$reveal>",
"title": "$:/plugins/tg/toolbar/buttons/list-untagged-tiddlers",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130150128685",
"description": "List untagged tiddlers",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/list-untagged}} list untagged"
},
"$:/plugins/tg/toolbar/buttons/more-toolbar-actions": {
"created": "20161010113847343",
"text": "\\define config-title()\n$:/config/TopLeftBarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tgc-more tc-drop-down\">\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$reveal>\n</$list>\n</$set>\n</$set>\n</$set>\n</div>\n</$reveal>\n",
"title": "$:/plugins/tg/toolbar/buttons/more-toolbar-actions",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130155900088",
"description": "{{$:/language/Buttons/More/Hint}}",
"creator": "TonGerner",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/new-journal": {
"text": "{{$:/core/ui/Buttons/new-journal}}",
"title": "$:/plugins/tg/toolbar/buttons/new-journal",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162505563",
"description": "{{$:/language/Buttons/NewJournal/Hint}}",
"creator": "TonGerner",
"created": "20150727085921741",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/new-template-tiddler": {
"created": "20131214181113770",
"text": "<$button message=\"tm-new-tiddler\" tooltip=\"New template tiddler\" class=<<tv-config-toolbar-class>> param=\"$:/plugins/tg/toolbar/templates/new-tiddler\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/new-template-tiddler}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"new template tiddler\"/>\n</$list>\n</$button>",
"title": "$:/plugins/tg/toolbar/buttons/new-template-tiddler",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130151537549",
"description": "Create a new tiddler based on a template",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/new-template-tiddler}} new template tiddler"
},
"$:/plugins/tg/toolbar/buttons/new-tiddler": {
"text": "{{$:/core/ui/Buttons/new-tiddler}}",
"title": "$:/plugins/tg/toolbar/buttons/new-tiddler",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162624624",
"description": "{{$:/language/Buttons/NewTiddler/Hint}}",
"creator": "TonGerner",
"created": "20150727085549203",
"caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/palette": {
"text": "{{$:/core/ui/Buttons/palette}}",
"title": "$:/plugins/tg/toolbar/buttons/palette",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162645712",
"description": "{{$:/language/Buttons/Palette/Hint}}",
"creator": "TonGerner",
"created": "20150727114333302",
"caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/permaview": {
"text": "{{$:/core/ui/Buttons/permaview}}",
"title": "$:/plugins/tg/toolbar/buttons/permaview",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162706341",
"description": "{{$:/language/Buttons/Permaview/Hint}}",
"creator": "TonGerner",
"created": "20150728085559554",
"caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/refresh": {
"text": "{{$:/core/ui/Buttons/refresh}}",
"title": "$:/plugins/tg/toolbar/buttons/refresh",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162729310",
"description": "{{$:/language/Buttons/Refresh/Hint}}",
"creator": "TonGerner",
"created": "20150728084910677",
"caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/rename-tags": {
"created": "20150730073458066",
"text": "<$button to=\"$:/plugins/tg/toolbar/rename-tags\" tooltip=\"Rename tags\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/rename-tags}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"rename tags\"/>\n</$list>\n</$button>",
"title": "$:/plugins/tg/toolbar/buttons/rename-tags",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130151707952",
"description": "Rename tags",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/rename-tags}} rename tags"
},
"$:/plugins/tg/toolbar/buttons/save-wiki": {
"text": "{{$:/core/ui/Buttons/save-wiki}}",
"title": "$:/plugins/tg/toolbar/buttons/save-wiki",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225162826543",
"description": "{{$:/language/Buttons/SaveWiki/Hint}}",
"creator": "TonGerner",
"created": "20150727113226924",
"caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/search": {
"created": "20180215094132405",
"text": "<$reveal state=\"$:/state/search\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/search\" setTo=\"no\" tooltip=\"Click to close search\" class=\"tgc-active-indicator tc-btn-invisible\">{{$:/plugins/tg/toolbar/images/search}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/search\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/search\" setTo=\"yes\" tooltip=\"Click to open search\" class=\"tc-btn-invisible\">{{$:/plugins/tg/toolbar/images/search}}</$button>\n</$reveal>",
"title": "$:/plugins/tg/toolbar/buttons/search",
"tags": "$:/tags/TopLeftBar",
"modified": "20200130160310033",
"description": "Search",
"caption": "{{$:/plugins/tg/toolbar/images/search}} search"
},
"$:/plugins/tg/toolbar/buttons/search-delete-tiddlers": {
"created": "20160803185834570",
"text": "<$button to=\"$:/plugins/tg/toolbar/search-delete-tiddlers\" tooltip=\"Search & delete tiddlers\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"search & delete tiddlers\"/>\n</$list>\n</$button>",
"type": "",
"title": "$:/plugins/tg/toolbar/buttons/search-delete-tiddlers",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130152952609",
"description": "Search & delete tiddlers",
"creator": "TonGerner",
"caption": "{{$:/core/images/delete-button}} search & delete"
},
"$:/plugins/tg/toolbar/buttons/sidebar": {
"created": "20131123133349221",
"text": "<$button to=\"$:/core/ui/SideBarLists\" tooltip=\"Open the Sidebar tabs\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/sidebar}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"sidebar\"/>\n</$list>\n</$button>",
"title": "$:/plugins/tg/toolbar/buttons/sidebar",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130160459346",
"description": "Shows the Sidebar",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/sidebar}} sidebar"
},
"$:/plugins/tg/toolbar/buttons/storyview": {
"text": "{{$:/core/ui/Buttons/storyview}}",
"title": "$:/plugins/tg/toolbar/buttons/storyview",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225163027612",
"description": "{{$:/language/Buttons/StoryView/Hint}}",
"creator": "TonGerner",
"created": "20150727113916016",
"caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/tag-handling": {
"created": "20150728085245822",
"text": "<$button to=\"$:/plugins/tg/toolbar/tag-handling\" tooltip=\"List tags\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/tag-handling}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"list tags\"/>\n</$list>\n</$button>\n",
"title": "$:/plugins/tg/toolbar/buttons/tag-handling",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130160552270",
"description": "List tags",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/tag-handling}} tags"
},
"$:/plugins/tg/toolbar/buttons/theme": {
"text": "{{$:/core/ui/Buttons/theme}}",
"title": "$:/plugins/tg/toolbar/buttons/theme",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225163130885",
"description": "{{$:/language/Buttons/Theme/Hint}}",
"creator": "TonGerner",
"created": "20150727114037029",
"caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/tiddler-manager": {
"text": "{{$:/core/ui/Buttons/manager}}",
"title": "$:/plugins/tg/toolbar/buttons/tiddler-manager",
"tags": "$:/tags/TopLeftBar",
"modified": "20191225163147524",
"description": "Manage tiddlers",
"created": "20170503094941294",
"caption": "{{$:/core/images/list}} manage tiddlers"
},
"$:/plugins/tg/toolbar/buttons/toggle-editortoolbar": {
"text": "<$reveal state=\"$:/config/TextEditor/EnableToolbar\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/config/TextEditor/EnableToolbar\" setTo=\"no\" tooltip=\"Toggle editor toolbar\" class=\"tgc-active-indicator tc-btn-invisible\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/plugins/tg/toolbar/images/editor-toolbar}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"hide editor toolbar\"/></span>\n</$list>\n</$button>\n\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EnableToolbar\" type=\"match\" text=\"no\">\n<$button set=\"$:/config/TextEditor/EnableToolbar\" setTo=\"yes\" tooltip=\"Toggle editor toolbar\" class=\"tc-btn-invisible\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/plugins/tg/toolbar/images/editor-toolbar-no}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"show editor toolbar\"/></span>\n</$list>\n</$button>\n</$reveal>\n",
"title": "$:/plugins/tg/toolbar/buttons/toggle-editortoolbar",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200313135117311",
"description": "Toggle editor toolbar",
"creator": "TonGerner",
"created": "20160727112924760",
"caption": "{{$:/plugins/tg/toolbar/images/editor-toolbar}} toggle editor toolbar"
},
"$:/plugins/tg/toolbar/buttons/toggle-field-handling": {
"text": "<$fieldmangler tiddler=\"$:/plugins/tg/toolbar/toggle-fields-handling\">\n<$list filter=\"[[$:/plugins/tg/toolbar/toggle-fields-handling]tag[$:/tags/ViewTemplate]]\">\n<$button message=\"tm-remove-tag\" tooltip=\"Hide field handling in view mode\" param=\"$:/tags/ViewTemplate\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tgc-active-indicator\">\n{{$:/plugins/tg/toolbar/images/fields}}\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"xxx\"/>\n</$list>\n</$button>\n</$list>\n\n<$list filter=\"[[$:/plugins/tg/toolbar/toggle-fields-handling]!tag[$:/tags/ViewTemplate]]\">\n<$button message=\"tm-add-tag\" tooltip=\"Field handling in view mode\" param=\"$:/tags/ViewTemplate\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/fields}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"yyy\"/>\n</$list>\n</$button>\n</$list>\n</$fieldmangler>\n",
"title": "$:/plugins/tg/toolbar/buttons/toggle-field-handling",
"tags": "$:/tags/PageControls $:/tags/ViewToolbar $:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200201113757081",
"description": "Toggle field handling in view mode",
"creator": "TonGerner",
"created": "20160111131840237",
"caption": "{{$:/plugins/tg/toolbar/images/fields}} field handling"
},
"$:/plugins/tg/toolbar/buttons/toggle-sidebar": {
"text": "{{$:/core/ui/TopBar/menu}}",
"title": "$:/plugins/tg/toolbar/buttons/toggle-sidebar",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225163427993",
"description": "{{$:/language/Buttons/HideSideBar/Hint}}",
"creator": "TonGerner",
"created": "20150810175051794",
"caption": "{{$:/core/images/chevron-right}} {{$:/language/Buttons/HideSideBar/Caption}}"
},
"$:/plugins/tg/toolbar/buttons/toggle-sticky": {
"text": "{{$:/plugins/tg/layout/buttons/toggle-sticky}}",
"title": "$:/plugins/tg/toolbar/buttons/toggle-sticky",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200313133226725",
"description": "Toggle sticky behaviour",
"creator": "TonGerner",
"created": "20170131182427858",
"caption": "{{$:/plugins/tg/toolbar/images/sticky}} toggle sticky behaviour"
},
"$:/plugins/tg/toolbar/buttons/toggle-tagging": {
"created": "20160111131840237",
"text": "<$fieldmangler tiddler=\"$:/plugins/tg/toolbar/tagging\">\n<$list filter=\"[[$:/plugins/tg/toolbar/tagging]tag[$:/tags/ViewTemplate]]\">\n<$button message=\"tm-remove-tag\" tooltip=\"Hide tagging in view mode\" param=\"$:/tags/ViewTemplate\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tgc-active-indicator\">\n{{$:/plugins/tg/toolbar/images/tagging}}\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"hide tagging in view mode\"/>\n</$list>\n</$button>\n</$list>\n\n<$list filter=\"[[$:/plugins/tg/toolbar/tagging]!tag[$:/tags/ViewTemplate]]\">\n<$button message=\"tm-add-tag\" tooltip=\"Tagging in view mode\" param=\"$:/tags/ViewTemplate\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/tagging}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"tagging in view mode\"/>\n</$list>\n</$button>\n</$list>\n</$fieldmangler>\n",
"title": "$:/plugins/tg/toolbar/buttons/toggle-tagging",
"tags": "$:/tags/PageControls $:/tags/ViewToolbar $:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200130161219318",
"description": "Toggle tagging in view mode",
"creator": "TonGerner",
"caption": "{{$:/plugins/tg/toolbar/images/tagging}} tagging"
},
"$:/plugins/tg/toolbar/buttons/unfold-all": {
"text": "{{$:/core/ui/Buttons/unfold-all}}",
"title": "$:/plugins/tg/toolbar/buttons/unfold-all",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191225163706913",
"description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
"creator": "TonGerner",
"created": "20160111133543876",
"caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}"
},
"$:/plugins/tg/toolbar/corrupt-tiddler-input": {
"text": "<$edit-text class=\"tc-edit-texteditor\" default=\"After selecting the title of the tiddler (above), the source of the 'corrupt' tiddler will be displayed here and can be edited.\" tiddler={{$:/temp/corrupt-tiddler}}/>\n\n",
"title": "$:/plugins/tg/toolbar/corrupt-tiddler-input",
"tags": "",
"modifier": "TonGerner",
"modified": "20200218183042999",
"creator": "TonGerner",
"created": "20160810185025269"
},
"$:/plugins/tg/toolbar/icon": {
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\">\n <metadata id=\"metadata7\">image/svg+xml</metadata>\n <g id=\"layer1\">\n <path fill=\"#a0a0ff\" stroke=\"#a0a0ff\" stroke-width=\"1.2218\" stroke-miterlimit=\"4\" id=\"path4142\" d=\"m48.98237,97.8691l-41.98313,-24.239l0,-48.47796l41.98313,-24.23897l41.98313,24.23897l0,48.47796l-41.98313,24.239z\"/>\n <g fill-rule=\"evenodd\" id=\"g4872\" transform=\"matrix(0.11300223,0,0,0.11300223,17.222103,983.45683) \">\n <path id=\"path4874\" d=\"m110.48779,-8358.78588c-1.13358,4.40426 -2.87653,8.56387 -5.13362,12.38361l0,0l6.72416,6.72416c3.12274,3.12274 3.13177,8.1918 0.0108,11.31274l-5.66866,5.66866c-3.11945,3.11945 -8.18581,3.11608 -11.31273,-0.0108l-6.72416,-6.72416c-3.81971,2.25706 -7.97933,4.00001 -12.38358,5.13359l0,0l0,9.50523c0,4.41622 -3.57798,8.00697 -7.99165,8.00697l-8.0167,0c-4.41157,0 -7.99165,-3.58484 -7.99165,-8.00697l0,-9.50523c-4.40425,-1.13358 -8.56387,-2.87653 -12.38361,-5.13362l-6.72416,6.72416c-3.12274,3.12273 -8.1918,3.13176 -11.31273,0.0108l-5.66866,-5.66866c-3.11946,-3.11946 -3.11609,-8.18582 0.01083,-11.31274l6.72416,-6.72416c-2.25709,-3.81971 -4.00004,-7.97932 -5.13362,-12.38358l-9.50524,0c-4.41622,0 -8.00697,-3.57798 -8.00697,-7.99165l0,-8.01669c0,-4.41158 3.58484,-7.99166 8.00697,-7.99166l9.50524,0c1.13358,-4.40425 2.87653,-8.56386 5.13362,-12.3836l-6.72416,-6.72416c-3.12274,-3.12274 -3.13177,-8.1918 -0.01083,-11.31274l5.66866,-5.66866c3.11945,-3.11945 8.18582,-3.11608 11.31274,0.01083l6.72416,6.72416c3.81973,-2.25709 7.97935,-4.00004 12.3836,-5.13362l0,-9.50523c0,-4.41622 3.57798,-8.00698 7.99165,-8.00698l8.0167,0c4.41157,0 7.99165,3.58485 7.99165,8.00698l0,9.50523c4.40425,1.13358 8.56387,2.87653 12.38361,5.13362l6.72416,-6.72416c3.12274,-3.12273 8.1918,-3.13176 11.31273,-0.01083l5.66866,5.66866c3.11946,3.11946 3.11609,8.18582 -0.0108,11.31274l-6.72416,6.72416l0,0c2.25709,3.81974 4.00004,7.97936 5.13362,12.38361l9.50524,0c4.41622,0 8.00697,3.57798 8.00697,7.99165l0,8.0167c0,4.41157 -3.58484,7.99165 -8.00697,7.99165l-9.50524,0l0,0l-0.00003,-0.00001zm-46.48779,20c17.67311,0 32,-14.32688 32,-32c0,-17.67311 -14.32689,-32 -32,-32c-17.67311,0 -32,14.32689 -32,32c0,17.67312 14.32689,32 32,32z\"/>\n </g>\n <g fill-rule=\"evenodd\" id=\"g4936\" transform=\"matrix(0.11579241,0,0,0.11579241,63.644957,982.92385) \">\n <path id=\"path4938\" d=\"m120.78304,-8197.20903c4.64125,8.86334 7.26637,18.9488 7.26637,29.64739c0,35.34622 -28.65378,64 -64,64c-35.34623,0 -64,-28.65378 -64,-64c0,-35.34622 28.65377,-64 64,-64c18.80747,0 35.72015,8.11254 47.42964,21.02919l2.68053,-2.68054c3.12961,-3.12961 8.19646,-3.13114 11.32065,-0.0069c3.11784,3.11784 3.12109,8.19262 -0.007,11.32065l-4.69025,4.69025l0.00006,-0.00004zm-12.05853,12.05853c2.14606,5.44655 3.3249,11.38004 3.3249,17.58886c0,26.50967 -21.49034,48 -48,48c-26.50967,0 -48,-21.49033 -48,-48c0,-26.50967 21.49033,-48 48,-48c14.38948,0 27.30009,6.33177 36.09769,16.36113l-41.20598,41.20597l-16.96554,-16.96554c-3.12697,-3.12696 -8.20089,-3.12285 -11.31873,-0.005c-3.12419,3.1242 -3.11963,8.19408 0.005,11.31873l22.6174,22.61736c1.56432,1.56432 3.6159,2.34503 5.65877,2.34673c2.04995,0.00009 4.10094,-0.78269 5.6669,-2.34865l44.11959,-44.11959z\"/>\n </g>\n <g id=\"g5003\" transform=\"matrix(0.11690278,0,0,0.11690278,38.314452,983.18889) \">\n <title transform=\"translate(0,-8153.3525390625) \">Layer 1</title>\n <g fill-rule=\"evenodd\" id=\"svg_1\">\n <path d=\"m55.85411,-8086.40722c-1.52416,-1.80209 -2.84072,-3.42633 -3.89984,-4.81894c-11.06427,-14.54832 -16.64509,-6.88804 -22.96008,0c-6.31499,6.88803 1.6636,12.46909 -4.32957,17.33473c-5.99318,4.86562 -5.62318,6.5522 -15.73807,-2.34916c-10.11489,-8.90137 -10.81448,-11.35217 -6.17119,-16.43122c4.64328,-5.07906 8.52412,2.91821 18.0093,-6.1079c9.48518,-9.02611 1.51725,-17.02576 1.51725,-17.02576c0,0 19.74913,-40.3714 46.1387,-37.38968c26.38957,2.98173 -9.98323,-3.86096 -19.03074,27.80068c-3.87369,13.55592 0.72092,10.3617 8.06618,16.08732c1.70653,1.33025 6.4279,4.73206 12.67112,9.31714c-6.12912,5.87914 -11.1567,10.66902 -14.27306,13.58279zm11.64114,12.94668c16.01297,17.03624 37.74187,37.72569 45.11634,40.42049c10.43254,3.81232 15.38841,-3.14158 15.38841,-14.78954c0,-7.1524 -23.82932,-26.54247 -43.92395,-41.76999c-7.40772,7.15607 -13.37595,12.95256 -16.5808,16.13904z\" id=\"svg_2\"/>\n <path d=\"m33.98171,-8043.52475l35.24108,-35.24108c-1.38906,-1.39189 -1.3865,-3.64794 0,-5.03444c1.39021,-1.39022 3.64306,-1.39138 5.03712,0.0027l15.09796,15.09796c1.39171,1.39171 1.39008,3.64974 0.0027,5.03714c-1.38933,1.38933 -3.64019,1.39136 -5.03444,0l0,0l-35.24108,35.24108c-4.17067,4.17067 -10.93268,4.17067 -15.10335,0.00001c-4.17066,-4.17066 -4.17065,-10.93266 0.00002,-15.10334l-0.00001,-0.00003zm113.27493,-103.20604l5.03444,5.03444l-7.48954,12.52398l-7.61379,2.57935l-52.86164,52.86163l-5.03443,-5.03444l52.86163,-52.86163l2.57933,-7.6138l12.524,-7.48953z\" id=\"svg_3\"/>\n </g>\n </g>\n <rect fill=\"none\" stroke=\"#000000\" stroke-width=\"2.9199\" stroke-miterlimit=\"4\" id=\"rect5021\" width=\"80.40152\" height=\"22.72296\" x=\"8.81709\" y=\"26.24402\" ry=\"3.6519\"/>\n </g>\n</svg>",
"type": "image/svg+xml",
"title": "$:/plugins/tg/toolbar/icon",
"modifier": "TonGerner",
"modified": "20191225163841777",
"creator": "TonGerner",
"created": "20160109201523824"
},
"$:/plugins/tg/toolbar/images/calendar": {
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" aria-label=\"Calendar\" role=\"img\" width=\"64\" height=\"64\" viewBox=\"0 0 512 512\">\n<path d=\"M512 455c0 32-25 57-57 57H57c-32 0-57-25-57-57V128c0-31 25-57 57-57h398c32 0 57 26 57 57z\" fill=\"#e0e7ec\"/>\n<path d=\"M484 0h-47c2 4 4 9 4 14a28 28 0 1 1-53-14H124c3 4 4 9 4 14A28 28 0 1 1 75 0H28C13 0 0 13 0 28v157h512V28c0-15-13-28-28-28z\" fill=\"#dd2f45\"/>\n<g fill=\"#f3aab9\">\n <circle cx=\"470\" cy=\"142\" r=\"14\"/>\n <circle cx=\"470\" cy=\"100\" r=\"14\"/>\n <circle cx=\"427\" cy=\"142\" r=\"14\"/>\n <circle cx=\"427\" cy=\"100\" r=\"14\"/>\n <circle cx=\"384\" cy=\"142\" r=\"14\"/>\n <circle cx=\"384\" cy=\"100\" r=\"14\"/>\n</g>\n<text id=\"month\" x=\"32\" y=\"164\" fill=\"#fff\" font-family=\"monospace\" font-size=\"140px\" style=\"text-anchor: left; text-transform: uppercase;\"><<now mmm>></text>\n<text id=\"day\" x=\"256\" y=\"400\" fill=\"#66757f\" font-family=\"monospace\" font-size=\"256px\" style=\"text-anchor: middle\"><<now DD>></text>\n<text id=\"weekday\" x=\"256\" y=\"480\" fill=\"#66757f\" font-family=\"monospace\" font-size=\"64px\" style=\"text-anchor: middle\"><<now DDD>></text>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/calendar",
"tags": "",
"modified": "20191226163355341",
"created": "20180226090143378"
},
"$:/plugins/tg/toolbar/images/corrupt-tiddler": {
"text": "<svg class=\"tgc-image-corrupt-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 521.000000 521.000000\"\n preserveAspectRatio=\"xMidYMid meet\">\n<g transform=\"translate(0.000000,521.000000) scale(0.100000,-0.100000)\">\n<path d=\"M1350 5032 c-668 -74 -1216 -136 -1217 -136 -3 -2 554 -4867 558\n-4871 2 -2 549 64 1214 146 666 82 1226 149 1245 150 19 1 360 -17 758 -41\n398 -23 725 -40 727 -38 5 4 405 4739 405 4789 l0 34 -812 43 c-447 24 -827\n43 -844 42 -31 0 -31 -1 -418 -782 l-388 -783 17 -55 c9 -30 109 -341 222\n-690 113 -349 206 -639 207 -645 0 -5 -20 -12 -47 -15 -36 -5 -51 -2 -61 10\n-20 24 -738 1259 -743 1279 -2 10 97 395 221 855 124 460 226 839 226 841 0 9\n-37 5 -1270 -133z m2839 -408 l333 -18 -5 -45 c-3 -25 -77 -890 -163 -1921\n-86 -1031 -160 -1878 -163 -1882 -6 -7 -681 27 -686 34 -9 13 -387 910 -384\n912 2 1 125 14 273 29 148 14 271 28 273 31 3 2 -124 404 -282 892 l-287 888\n274 554 273 554 105 -6 c58 -2 255 -13 439 -22z m-2223 -31 c-3 -10 -76 -279\n-162 -598 -126 -465 -155 -585 -147 -605 5 -14 168 -297 362 -630 194 -332\n353 -608 354 -613 1 -5 -128 -44 -288 -87 -159 -43 -289 -82 -288 -88 1 -6\n196 -282 434 -614 387 -542 428 -603 407 -607 -13 -2 -360 -45 -772 -95 -493\n-61 -749 -89 -751 -82 -6 18 -446 3888 -443 3891 3 2 1247 142 1281 144 13 1\n17 -4 13 -16z\"/>\n</g>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/corrupt-tiddler",
"tags": "",
"modifier": "TonGerner",
"modified": "20191226163427144",
"creator": "TonGerner",
"created": "20160213194442669"
},
"$:/plugins/tg/toolbar/images/editor-toolbar": {
"text": "<svg class=\"tgc-toolbar-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 1600 1600\">\n<path d=\"M50 800v300h1500V500H50v300zm1400 0v200H150V600h1300v200z\"/>\n<path d=\"M250 800v100h200V700H250v100zM550 800v100h200V700H550v100zM931 701.4c-21.1 4.5-39.3 14.6-54 30.2-11.4 12.1-19.7 27-24.2 43.4-2 7.3-2.3 10.8-2.3 25s.3 17.7 2.3 25c7.9 28.9 27.1 52.1 53.7 65 15.8 7.8 23.8 9.5 43.5 9.5 19.7-.1 27.8-1.8 43.5-9.5 26.6-12.9 45.9-36.2 53.6-65 2-7.2 2.3-11 2.4-25 0-19.7-1.7-27.7-9.5-43.5-10.4-21.4-26.6-37.3-48.3-47.5-13.5-6.3-22-8.2-39.2-8.6-10.1-.2-17.1.1-21.5 1zM1150 800v100h200V700h-200v100z\"/>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/editor-toolbar",
"tags": "",
"modified": "20200313134631509",
"created": "20190210205016387"
},
"$:/plugins/tg/toolbar/images/fields": {
"text": "<svg class=\"tgc-fields-button tc-image-button\" width=\"22\" height=\"22\" viewBox=\"0 0 128 128\">\n<path d=\"m125.7 29.3c-1.1-1.3-2.6-2-4.1-2l-115.5 0c-3.2 0-5.8 3-5.8 6.8l0 63.2c0 3.7 2.6 6.8 5.8 6.8l115.5 0c3.2 0 5.8-3 5.8-6.8l0-63.2c0-1.8-0.6-3.5-1.7-4.8zm-9.9 61.3l-103.9 0 0-49.7 103.9 0 0 49.7z\"/>\n<rect height=\"27.1\" width=\"11.5\" y=\"52.2\" x=\"23.5\"/></g></svg>",
"title": "$:/plugins/tg/toolbar/images/fields",
"tags": "",
"modified": "20191226163602364",
"created": "20191226163557925"
},
"$:/plugins/tg/toolbar/images/list-all": {
"text": "<svg class= \"tgc-list-all-button tc-image-button\" viewBox=\"0 0 22 22\" width=\"22pt\" height=\"22pt\">\n <g>\n <g stroke=\"null\" id=\"svg_16\">\n <g stroke=\"null\" id=\"svg_1\">\n <rect stroke=\"null\" id=\"svg_2\" height=\"2.1868\" width=\"16.21141\" y=\"19.6257\" x=\"5.66359\"/>\n <rect stroke=\"null\" id=\"svg_3\" height=\"2.1868\" width=\"3.03625\" y=\"19.6257\" x=\"0.1875\"/>\n </g>\n <g stroke=\"null\" id=\"svg_4\">\n <rect stroke=\"null\" id=\"svg_5\" height=\"2.1868\" width=\"16.21141\" y=\"14.76615\" x=\"5.66359\"/>\n <rect stroke=\"null\" id=\"svg_6\" height=\"2.1868\" width=\"3.03625\" y=\"14.76615\" x=\"0.1875\"/>\n </g>\n <g stroke=\"null\" id=\"svg_7\">\n <rect stroke=\"null\" id=\"svg_8\" height=\"2.1868\" width=\"3.03625\" y=\"9.9066\" x=\"0.1875\"/>\n <rect stroke=\"null\" id=\"svg_9\" height=\"2.1868\" width=\"16.21141\" y=\"9.9066\" x=\"5.66359\"/>\n </g>\n <g stroke=\"null\" id=\"svg_10\">\n <rect stroke=\"null\" id=\"svg_11\" height=\"2.1868\" width=\"3.03625\" y=\"5.04705\" x=\"0.1875\"/>\n <rect stroke=\"null\" id=\"svg_12\" height=\"2.1868\" width=\"16.21141\" y=\"5.04705\" x=\"5.66359\"/>\n </g>\n <g stroke=\"null\" id=\"svg_13\">\n <rect stroke=\"null\" id=\"svg_14\" height=\"2.1868\" width=\"3.03625\" y=\"0.1875\" x=\"0.1875\"/>\n <rect stroke=\"null\" id=\"svg_15\" height=\"2.1868\" width=\"16.21141\" y=\"0.1875\" x=\"5.66359\"/>\n </g>\n </g>\n </g>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/list-all",
"modifier": "TonGerner",
"modified": "20191226163628868",
"creator": "TonGerner",
"created": "20131030210000000"
},
"$:/plugins/tg/toolbar/images/list-open": {
"text": "<svg class= \"tgc-list-open-button tc-image-button\" viewBox=\"0 0 22 22\" width=\"22pt\" height=\"22pt\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"null\" style=\"vector-effect: non-scaling-stroke;\" preserveAspectRatio=\"xMidYMid meet\">\n <metadata stroke=\"null\" style=\"vector-effect: non-scaling-stroke;\">Created by potrace 1.12, written by Peter Selinger 2001-2015</metadata>\n <g stroke=\"null\">\n <g id=\"svg_1\" transform=\"translate(0,512) scale(0.10000000149011612,-0.10000000149011612) \">\n <path stroke=\"null\" id=\"svg_2\" d=\"m63.99242,5116.30566c-1.18196,-0.64453 -5.36082,-5.67871 -16.16689,-19.44336c-8.06235,-10.23926 -14.7739,-18.54102 -14.98498,-18.49902c-0.21106,0.08691 -4.64323,3.01221 -9.87743,6.58252c-5.23418,3.52783 -10.00404,6.58203 -10.59499,6.71094c-2.11056,0.55957 -5.52967,-0.04248 -7.26033,-1.24707c-4.22112,-3.01123 -4.64324,-9.98047 -0.84423,-13.46484c1.39297,-1.29053 24.69356,-17.07764 26.93075,-18.23975c2.36383,-1.24805 5.86734,-1.07568 8.18896,0.38721c1.05531,0.6875 7.21814,8.17334 18.36192,22.36914c9.202,11.74365 17.17991,22.06787 17.72863,22.97168c2.32163,3.87158 0.71762,9.63623 -3.29241,11.78613c-2.40608,1.2915 -5.90961,1.33447 -8.18899,0.08643z\"/>\n <path stroke=\"null\" id=\"svg_3\" d=\"m101.26492,5083.22559l0,-8.604l58.25144,0l58.25145,0l0,8.604l0,8.60352l-58.25145,0l-58.25144,0l0,-8.60352z\"/>\n <path stroke=\"null\" id=\"svg_4\" d=\"m63.78136,5039.69092c-1.77287,-1.1626 -4.72768,-4.64648 -16.16689,-19.27246c-7.68245,-9.80811 -14.09854,-17.98145 -14.26736,-18.15332c-0.12666,-0.17188 -4.38999,2.45215 -9.41314,5.89307c-5.02313,3.39844 -9.83518,6.49609 -10.67943,6.8833c-3.46131,1.46289 -7.59801,0.25781 -10.08848,-2.9248c-1.05527,-1.33398 -1.30854,-2.1084 -1.43516,-4.34521c-0.21106,-3.0542 0.63317,-5.20508 2.74372,-7.18408c2.49047,-2.4082 26.67745,-18.4126 28.19708,-18.71338c2.6593,-0.5166 5.52967,0.04297 7.21812,1.3335c1.64625,1.29102 34.69761,43.14697 35.87951,45.42725c1.05525,2.10791 0.92864,5.89453 -0.25325,8.04492c-1.47741,2.6665 -3.63017,4.00098 -6.8382,4.2583c-2.44828,0.17236 -2.8282,0.08594 -4.89652,-1.24707z\"/>\n <path stroke=\"null\" id=\"svg_5\" d=\"m101.26492,5007.08301l0,-8.60352l58.25144,0l58.25145,0l0,8.60352l0,8.60352l-58.25145,0l-58.25144,0l0,-8.60352z\"/>\n <path stroke=\"null\" id=\"svg_6\" d=\"m65.25877,4964.2793c-0.92868,-0.30078 -2.11058,-1.03174 -2.70156,-1.59131c-0.59095,-0.51514 -7.17588,-8.73242 -14.60505,-18.1958c-7.42916,-9.46436 -13.80305,-17.55225 -14.22516,-17.98096c-0.71761,-0.77588 -1.0975,-0.56006 -10.25733,5.67773c-10.93271,7.39941 -12.49453,8.04346 -15.95583,6.88232c-3.63016,-1.24805 -5.82515,-4.3877 -5.86734,-8.34619c0,-2.36523 1.1397,-5.03223 2.6593,-6.36621c1.98392,-1.67773 25.91768,-17.80957 27.09958,-18.23877c3.50354,-1.33447 6.88042,-0.81836 9.24424,1.46143c2.06834,1.93701 34.65537,43.70703 35.24635,45.16895c1.39298,3.52832 0.16883,8.38916 -2.65933,10.36768c-2.61708,1.80713 -5.19193,2.19385 -7.97787,1.16113z\"/>\n <path stroke=\"null\" id=\"svg_7\" d=\"m101.26492,4930.94092l0,-8.60352l58.25144,0l58.25145,0l0,8.60352l0,8.60352l-58.25145,0l-58.25144,0l0,-8.60352z\"/>\n </g>\n </g>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/list-open",
"modifier": "TonGerner",
"modified": "20191226163708305",
"creator": "TonGerner",
"created": "20131030210000000"
},
"$:/plugins/tg/toolbar/images/list-recent": {
"text": "<svg class=\"tgc-list-recent-button tc-image-button\" viewBox=\"0 0 22 22\" width=\"22pt\" height=\"22pt\"> <path d=\"m7.05874,13.26509c0.22436,0.38865 0.72531,0.52252 1.11366,0.29777l2.69645,-1.36067c0.04406,0.00649 0.08811,0.0146 0.13462,0.0146c0.67554,0 1.2238,-0.54443 1.2238,-1.21706l-0.40793,-6.39036c0,-0.44788 -0.36551,-0.81137 -0.81587,-0.81137c-0.45036,0 -0.81587,0.36349 -0.81587,0.81137l-0.38019,5.9579l-2.45087,1.59029c-0.38999,0.22475 -0.52379,0.72131 -0.29779,1.10752zm1.13895,-7.09707c0.3908,-0.22394 0.52379,-0.7205 0.29861,-1.10833c-0.22518,-0.38784 -0.72449,-0.5209 -1.11448,-0.29696s-0.52379,0.7205 -0.29861,1.10833c0.226,0.38865 0.72449,0.52171 1.11448,0.29696zm-3.16802,7.32425c-0.38999,0.22475 -0.52379,0.72131 -0.29779,1.10914c0.22436,0.38865 0.72531,0.52009 1.11366,0.29615c0.3908,-0.22313 0.5246,-0.7205 0.29942,-1.10915c-0.22518,-0.38621 -0.72449,-0.51928 -1.11529,-0.29615zm0.81669,-6.39036c-0.3908,-0.22394 -0.8893,-0.09087 -1.11448,0.29696s-0.09056,0.8844 0.29779,1.10833c0.3908,0.22394 0.8893,0.09168 1.11529,-0.29696c0.22436,-0.38784 0.09056,-0.88358 -0.29861,-1.10833zm-2.08536,3.89783c0,0.44869 0.36633,0.81137 0.81587,0.81137c0.45036,0 0.81587,-0.36268 0.81668,-0.81137c-0.00082,-0.44788 -0.36551,-0.81056 -0.81668,-0.81137c-0.45118,0 -0.81587,0.36349 -0.81587,0.81137zm6.4266,6.39117c0,0.44869 0.36551,0.81137 0.81587,0.81137c0.45036,0 0.81587,-0.36268 0.81587,-0.81137s-0.36551,-0.81137 -0.81587,-0.81137c-0.45036,0 -0.81587,0.36268 -0.81587,0.81137zm-3.10438,-1.26168c-0.22436,0.38865 -0.09056,0.8844 0.29861,1.10752c0.38999,0.22394 0.89011,0.08925 1.11366,-0.29615c0.226,-0.38865 0.09219,-0.88439 -0.29779,-1.10915c-0.38999,-0.22313 -0.88848,-0.09006 -1.11448,0.29777zm9.07736,-9.02732c-0.3908,0.22556 -0.5246,0.72212 -0.29861,1.10914s0.72449,0.5209 1.11448,0.29615c0.38998,-0.22313 0.5246,-0.7205 0.29779,-1.10833c-0.22355,-0.38784 -0.72531,-0.5209 -1.11366,-0.29696zm-0.29861,6.68732c-0.22355,0.38865 -0.09138,0.88602 0.29942,1.10915c0.38917,0.22232 0.88848,0.09087 1.11285,-0.29615c0.22518,-0.38865 0.09138,-0.88602 -0.29698,-1.10915c-0.39162,-0.22394 -0.89174,-0.09087 -1.11529,0.29615zm2.38397,-2.7895c0,-0.44707 -0.36551,-0.81137 -0.81587,-0.81137c-0.45199,0.00162 -0.81668,0.36512 -0.81668,0.81137c0.00082,0.44788 0.36551,0.81137 0.81668,0.81137c0.45036,0 0.81587,-0.36268 0.81587,-0.81137zm-4.73612,5.94086c0.22355,0.38703 0.72449,0.52171 1.11448,0.29615c0.38999,-0.22313 0.52379,-0.72212 0.29779,-1.10752c-0.226,-0.38865 -0.72449,-0.52171 -1.11366,-0.29777c-0.3908,0.22475 -0.5246,0.72131 -0.29861,1.10915zm0.29861,-10.77177c0.38917,0.22394 0.88767,0.09087 1.11366,-0.29696c0.22518,-0.38784 0.09219,-0.88521 -0.29943,-1.10915c-0.38917,-0.22394 -0.8893,-0.09006 -1.11284,0.29696c-0.22436,0.38946 -0.09056,0.88521 0.29861,1.10915zm7.96614,3.90919c-0.51318,-5.91652 -5.75106,-10.29955 -11.69874,-9.79244c-2.65484,0.228 -4.99148,1.40043 -6.73092,3.14569l-1.44653,-1.20976l-1.06797,5.97494l5.73637,-2.06737l-1.33476,-1.11726c1.32742,-1.27142 3.07338,-2.12661 5.05349,-2.29862c4.6015,-0.38702 8.64413,2.99721 9.04717,7.57415c0.38917,4.57614 -3.013,8.59648 -7.6145,8.99811c-4.60395,0.38621 -8.64739,-2.99721 -9.04962,-7.57253c-0.08322,-0.97689 0.0155,-1.92538 0.25292,-2.82195l-2.66789,0.96229c-0.07261,0.67506 -0.08648,1.36635 -0.02529,2.069c0.51318,5.9149 5.75024,10.29712 11.70037,9.79001c5.9485,-0.51035 10.35582,-5.71854 9.8459,-11.63426z\"/></svg>",
"title": "$:/plugins/tg/toolbar/images/list-recent",
"modifier": "TonGerner",
"modified": "20191226163736694",
"creator": "TonGerner",
"created": "20131120132127875"
},
"$:/plugins/tg/toolbar/images/list-untagged": {
"text": "<svg class= \"tgc-list-untagged-button tc-image-button\" viewBox=\"0 0 22 22\" width=\"22pt\" height=\"22pt\" xmlns=\"http://www.w3.org/2000/svg\" stroke=\"null\" style=\"vector-effect: non-scaling-stroke;\" preserveAspectRatio=\"xMidYMid meet\">\n <metadata stroke=\"null\" style=\"vector-effect: non-scaling-stroke;\">Created by potrace 1.12, written by Peter Selinger 2001-2015</metadata>\n <g stroke=\"null\">\n <g id=\"svg_1\" transform=\"translate(0,411) scale(0.10000000149011612,-0.10000000149011612) \">\n <path stroke=\"null\" id=\"svg_2\" d=\"m5.8654,4105.51318l-1.91815,-1.72705l-0.17437,-25.84082c-0.17437,-23.04248 -0.05813,-25.95972 0.75564,-27.62695c1.86,-3.51318 1.62751,-3.51318 28.77208,-3.51318c27.26083,0 27.08645,0 28.77208,3.57324c1.27876,2.85767 1.33688,50.66943 0,53.28906c-1.86001,3.69141 -0.98813,3.57227 -28.88833,3.57227l-25.45893,0l-1.86001,-1.72656zm43.71032,-28.3418l0,-16.96924l-16.27512,0l-16.27512,0l0,16.96924l0,16.96924l16.27512,0l16.27512,0l0,-16.96924z\"/>\n <path stroke=\"null\" id=\"svg_3\" d=\"m92.87917,4087.23413c-4.18505,-2.20313 -6.21943,-5.5376 -6.33569,-10.06274c-0.05811,-6.01367 4.59193,-10.95532 10.40446,-11.07446c1.56941,0 27.26084,-0.05957 57.02103,-0.05957c59.98544,0 55.74229,-0.29761 59.40417,3.92993c4.41756,5.17993 2.73192,13.81299 -3.37129,17.02856c-2.20872,1.19092 -3.48747,1.19092 -58.82289,1.19092c-50.10411,0 -56.73041,-0.1189 -58.29979,-0.95264z\"/>\n <path stroke=\"null\" id=\"svg_4\" d=\"m5.6329,4028.40723l-1.97628,-2.02466l0,-25.72168c0,-23.16162 0.11626,-25.90063 0.98814,-27.44873c2.03438,-3.45337 2.38314,-3.51245 28.65584,-3.51245c26.62145,0 26.97019,0.05908 28.71395,3.87012c1.33689,2.85791 1.395,50.66968 0.05812,53.28955c-1.86001,3.69141 -0.98813,3.57202 -28.94645,3.57202l-25.51707,0l-1.97626,-2.02417zm43.94282,-28.04419l0,-16.96924l-16.27512,0l-16.27512,0l0,16.96924l0,16.96948l16.27512,0l16.27512,0l0,-16.96948z\"/>\n <path stroke=\"null\" id=\"svg_5\" d=\"m92.87917,4010.36621c-4.24318,-2.26294 -6.27758,-5.47778 -6.27758,-10.00317c-0.05811,-4.22729 1.80192,-7.56152 5.2313,-9.64526l2.79003,-1.66748l56.67228,0c63.18234,0 58.24168,-0.29761 62.07794,4.1084c4.53378,5.29932 2.61566,14.1709 -3.60373,17.08838c-2.26692,1.07178 -4.9407,1.13135 -58.76482,1.07178c-50.2785,0 -56.55605,-0.1189 -58.12543,-0.95264z\"/>\n <path stroke=\"null\" id=\"svg_6\" d=\"m7.43478,3953.08716c-0.63938,-0.29736 -1.68565,-1.13135 -2.32502,-1.8457c-1.10438,-1.25049 -1.16252,-2.2627 -1.33689,-27.15088c-0.17437,-28.6394 -0.17437,-28.40112 3.60377,-30.24683c1.74378,-0.8335 4.94067,-0.95264 25.92395,-0.95264c20.5764,0 24.23829,0.11914 25.86581,0.95264c3.72003,1.78638 3.77814,2.08374 3.77814,29.83032c0,23.81641 -0.05811,24.94775 -1.16251,26.85303c-0.63937,1.07178 -1.86,2.20288 -2.67378,2.50098c-1.80187,0.71411 -49.98785,0.71411 -51.67348,0.05908zm42.14093,-29.53247l0,-16.96924l-16.27512,0l-16.27512,0l0,16.96924l0,16.96973l16.27512,0l16.27512,0l0,-16.96973z\"/>\n <path stroke=\"null\" id=\"svg_7\" d=\"m93.16978,3933.61719c-4.30128,-1.90552 -6.56819,-5.35864 -6.56819,-10.0625c-0.05811,-5.41797 2.9644,-9.52661 8.02133,-10.95557c3.13876,-0.89307 110.08958,-0.89307 113.22834,0c2.49937,0.7146 5.87067,3.51294 7.14943,5.9541c1.22064,2.44116 1.04623,7.26416 -0.34879,10.06274c-0.63939,1.30981 -2.26688,3.0957 -3.60376,3.98926l-2.44125,1.66724l-56.6723,0.1189c-49.69724,0.11914 -56.96293,0 -58.76481,-0.77417z\"/>\n </g>\n </g>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/list-untagged",
"tags": "",
"modifier": "TonGerner",
"modified": "20191226163809985",
"creator": "TonGerner",
"created": "20150807200200203"
},
"$:/plugins/tg/toolbar/images/new-template-tiddler": {
"text": "<svg class=\"tgc-new-template-button tc-image-button\" viewBox=\"0 0 22 22\" width=\"22pt\" height=\"22pt\" xmlns=\"http://www.w3.org/2000/svg\" preserveAspectRatio=\"xMidYMid meet\">\n <g>\n <title>Layer 1</title>\n <rect height=\"3.18427\" width=\"11.84691\" id=\"e1_rectangle\" y=\"17.06573\" x=\"10.02809\"/>\n <rect id=\"e2_rectangle\" height=\"3.18427\" width=\"11.82083\" y=\"1.625\" x=\"10\"/>\n <rect transform=\"matrix(0.03696432039320857,0,0,0.06008064622899197,61.76691469018027,72.69297278575596) \" id=\"e4_rectangle\" height=\"53\" width=\"264\" y=\"-1052.87631\" x=\"-1343.80504\"/>\n <rect id=\"e5_rectangle\" transform=\"matrix(0.03696432039320857,0,0,0.06008064622899197,61.76691469018027,72.69297278575596) \" height=\"53\" width=\"264\" y=\"-1053.87631\" x=\"-1663.22788\"/>\n <rect id=\"e6_rectangle\" transform=\"matrix(0.00003294807490963891,0.040680485400358,-0.0537343780992714,0.00005355276385491953,82.7917997491252,94.38851470356855) \" height=\"53\" width=\"264\" y=\"1414.59029\" x=\"-2185.64586\"/>\n </g>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/new-template-tiddler",
"modifier": "TonGerner",
"modified": "20191226163959814",
"creator": "TonGerner",
"created": "20131214180218851"
},
"$:/plugins/tg/toolbar/images/rename-tags": {
"text": "<svg class=\"tgc-rename-tags-button tc-image-button\" height=\"22pt\" width=\"22pt\" viewBox=\"0 0 512 512\">\n <path d=\"m-883.429993,-366.779999l191.880005,0c-14.219971,0.479462 -28.530029,1.34848 -42.419983,4.604736c-19.570007,4.125305 -38.570007,12.355957 -53.75,25.540924c-6.230042,-5.463776 -13.170044,-10.078522 -20.52002,-13.904144c-23.119995,-11.95639 -49.450012,-15.652191 -75.190002,-16.241516z\" id=\"svg_3\"/>\n <path d=\"m242.559998,-0.057619l2.299988,0c25.740021,0.589325 52.070007,4.285113 75.190002,16.241499c7.350006,3.825661 14.290009,8.440399 20.52002,13.904179c15.179993,-13.184996 34.179993,-21.415613 53.75,-25.54092c13.889984,-3.256287 28.199982,-4.125307 42.419983,-4.604757l2.279999,0c7.380005,0.299662 14.790009,2.966624 20.140015,8.160705c6.22998,5.74346 9.690002,14.313715 9.220001,22.764086c-0.369995,11.436954 -8.240021,22.104832 -18.959991,26.040356c-9.030029,3.206341 -18.790009,1.787941 -28.140015,3.006554c-13.700012,1.508289 -27.899994,4.434948 -39.290009,12.625637c-6.380005,4.724594 -12.130005,11.906418 -11.73999,20.246925c0.070007,14.95298 -0.01001,29.905952 0.040009,44.84893c-0.172668,321.623795 3.069977,292.776566 -0.01001,236.031235c-0.01001,15.592224 0,31.184448 -0.01001,46.776733c-0.109985,3.565948 1.190002,7.002045 3.089996,9.968628c4.550018,7.24176 12.230011,11.79657 20.02002,14.853088c13.309998,5.114166 27.699982,6.632446 41.869995,6.902161c4.440002,0.099884 8.970001,0.299652 13.169983,1.917816c10.150024,3.266235 18.070007,12.545715 19.590027,23.103699c1.509979,8.510254 -1.190002,17.550018 -6.890106,24.012634c-5.589905,6.57251 -14.160004,9.93869 -22.679993,10.158386l-0.900024,0c-25.829987,-0.439484 -52.289978,-3.835571 -75.639984,-15.522278c-7.660004,-3.755737 -14.820007,-8.510345 -21.330017,-14.014008c-15.299988,13.174927 -34.519989,21.145905 -54.179993,25.161285c-13.919983,3.186371 -28.23999,3.925568 -42.470001,4.375l-2.319977,0c-12.400009,-0.399506 -24.12001,-8.969757 -27.550018,-20.976105c-3.479996,-10.9375 0.279999,-23.712982 9.210007,-30.954742c5.73999,-5.124176 13.559998,-7.021973 21.089981,-7.201752c12.690002,-0.219788 25.480011,-1.338501 37.690002,-4.954376c7.809998,-2.427246 15.580017,-5.833374 21.529999,-11.586792c4.059998,-3.985504 7.370026,-9.26947 7.320007,-15.132782c0.02002,-109.575226 0,-219.140457 0.01001,-328.705658c0.049988,-7.141861 -4.550018,-13.334824 -9.76001,-17.779747c-11.75,-9.51915 -27.179993,-12.635632 -41.859985,-14.223816c-9.230011,-1.22858 -18.929993,0.449471 -27.76001,-3.076485c-9.630005,-3.615879 -16.990005,-12.705536 -18.389999,-22.893944c-1.75,-10.398161 2.800003,-21.545469 11.289993,-27.798328c5.130005,-4.075361 11.690002,-5.773439 18.140015,-6.133016l0.000092,-0.00003l0,-0.000001z\" id=\"svg_2\"/>\n <path d=\"m22.613998,146.095932c4.079998,-5.074203 10.760002,-7.111893 17.09,-7.031998c91.120007,0 182.249996,-0.009964 273.380016,0c0.009979,13.105072 0.009979,26.210175 0,39.315247c-85.330139,0.019958 -170.660141,0 -255.990013,0.009964l0,157.380814c85.329994,0.009979 170.659996,-0.01001 255.990013,0.009979c0.009979,13.105072 0.009979,26.210144 0,39.315216c-91.770126,0 -183.540131,0.029938 -275.310009,-0.019989c-10.630001,0.109863 -19.869999,-9.019684 -20.060001,-19.607666l0,-198.054459c0.75,-4.065353 2.020004,-8.210663 4.900002,-11.317108l-0.000008,0z\" id=\"svg_5\"/>\n <path d=\"m87.932999,214.897583c59.069992,-0.009995 118.139999,-0.009995 177.210007,-0.009995l0,78.670425c-59.069992,0 -118.139999,0 -177.220001,-0.01001c0,-26.220123 0,-52.430267 0.010002,-78.650421l-0.000008,0z\" id=\"svg_7\"/>\n <path d=\"m489.619995,146.095932c-4.079987,-5.074203 -10.76001,-7.111893 -17.089996,-7.031998c-91.119995,0 -182.25,-0.009964 -273.380005,0c-0.01001,13.105072 -0.01001,26.210175 0,39.315247c85.329987,0.019958 170.660004,0 255.98999,0.009964l0,157.380814c-85.329987,0.009979 -170.660004,-0.01001 -255.98999,0.009979c-0.01001,13.105072 -0.01001,26.210144 0,39.315216c91.769989,0 183.539978,0.029938 275.309998,-0.019989c10.630005,0.109863 19.869995,-9.019684 20.059998,-19.607666l0,-198.054459c-0.75,-4.065353 -2.019989,-8.210663 -4.899994,-11.317108z\" id=\"path3380\"/>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/rename-tags",
"tags": "",
"modifier": "TonGerner",
"modified": "20191226164020961",
"creator": "TonGerner",
"created": "20150730083614332"
},
"$:/plugins/tg/toolbar/images/search": {
"text": "<svg class=\"tc-image-search-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path transform=\"rotate(90 64,64) \" id=\"svg_2\" d=\"m76.14718,89.25047c-7.607,5.06405 -16.74144,8.01516 -26.56515,8.01516c-26.50967,0 -48,-21.49033 -48,-48c0,-26.50967 21.49033,-48 48,-48c26.50967,0 48,21.49033 48,48c0,9.85414 -2.96942,19.01473 -8.06228,26.63579l34.3472,34.34719c3.69398,3.69398 3.68884,9.67068 -0.00065,13.36017c-3.69029,3.69029 -9.67103,3.68977 -13.36016,0.00064l-34.35896,-34.35895zm-26.56515,-7.98484c17.67311,0 32,-14.32689 32,-32c0,-17.67311 -14.32689,-32 -32,-32c-17.67311,0 -32,14.32689 -32,32c0,17.67311 14.32689,32 32,32z\"/>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/search",
"tags": "",
"modified": "20191226164043592",
"created": "20180215131546649"
},
"$:/plugins/tg/toolbar/images/sidebar": {
"text": "<svg class=\"tgc-sidebar-button tc-image-button\" viewBox=\"0 0 32 32\" width=\"22pt\" height=\"22pt\"><path d=\"M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM24.386,14.968c-1.451,1.669-3.706,2.221-5.685,1.586l-7.188,8.266c-0.766,0.88-2.099,0.97-2.979,0.205s-0.973-2.099-0.208-2.979l7.198-8.275c-0.893-1.865-0.657-4.164,0.787-5.824c1.367-1.575,3.453-2.151,5.348-1.674l-2.754,3.212l0.901,2.621l2.722,0.529l2.761-3.22C26.037,11.229,25.762,13.387,24.386,14.968z\" id=\"path3032\" /></svg>\n",
"title": "$:/plugins/tg/toolbar/images/sidebar",
"modifier": "TonGerner",
"modified": "20191226164105489",
"creator": "TonGerner",
"created": "20131123133128497"
},
"$:/plugins/tg/toolbar/images/sticky": {
"text": "<svg class=\"tgc-sticky-button tc-image-button\" height=\"22pt\" width=\"22pt\" viewBox=\"0 0 290 290\">\n<path d=\"M284.779,92.635L197.365,5.222c-6.962-6.963-18.253-6.963-25.217,0l-0.818,0.818c-6.964,6.963-6.963,18.254,0,25.217\n\tl1.232,1.232L97.788,95.371L95.6,93.182c-2.412-2.412-5.691-3.688-9.484-3.688c-6.215,0-13.456,3.53-19.369,9.443l-5.059,5.059\n\tc-1.238,1.237-1.932,2.915-1.932,4.665c0,1.749,0.694,3.428,1.932,4.665l43.014,43.013L2.526,271.29\n\tc-3.52,3.959-3.34,9.977,0.408,13.72l2.07,2.066C6.949,289.019,9.507,290,12.071,290c2.369,0,4.743-0.838,6.642-2.526\n\tl114.946-102.175l43.015,43.015c1.288,1.288,2.976,1.932,4.665,1.932c1.688,0,3.376-0.644,4.665-1.932l5.06-5.06\n\tc9.864-9.865,12.338-22.27,5.754-28.855l-2.187-2.186l62.881-74.773l1.232,1.231c6.962,6.963,18.252,6.963,25.214-0.002l0.819-0.818\n\tC291.74,110.888,291.741,99.599,284.779,92.635z\"/>\n</svg>\n",
"title": "$:/plugins/tg/toolbar/images/sticky",
"tags": "",
"modified": "20191226164140439",
"created": "20170314123023395"
},
"$:/plugins/tg/toolbar/images/tag-handling": {
"text": "<svg class=\"tgc-tags-handling-button tc-image-button\" viewBox=\"0 0 22 22\" width=\"22pt\" height=\"22pt\"><path d=\"m0.1875,4.2932l0,4.1057l13.06098,13.02746c0.5684,0.56672 1.48974,0.56672 2.05813,0l6.17418,-6.15877c0.56818,-0.56672 0.56818,-1.4857 0,-2.05285l-13.06098,-13.02724l-4.11605,0l-4.11627,4.1057zm6.81947,2.62217c-0.5684,0.56694 -1.48974,0.56694 -2.05813,0c0.5684,-0.56694 -0.5684,-1.48591 0,-2.05285c0.56818,-0.56694 1.48952,-0.56694 2.05813,0c0.5684,0.56694 0.5684,1.48591 0,2.05285z\"/></svg>",
"title": "$:/plugins/tg/toolbar/images/tag-handling",
"modifier": "TonGerner",
"modified": "20191226164202516",
"creator": "TonGerner",
"created": "20131020115200000"
},
"$:/plugins/tg/toolbar/images/tagging": {
"text": "<svg class=\"tgc-tagging-button tc-image-button\" height=\"22pt\" width=\"22pt\" viewBox=\"0 0 22 22\">\n<path id=\"svg_1\" d=\"m7.4224,21.44207l13.97943,-13.96076c0.08521,-0.08543 0.15867,-0.1777 0.22215,-0.27477c0.17689,-0.22723 0.28806,-0.5095 0.28877,-0.82012l-0.00162,-4.94194c0.00091,-0.74124 -0.59945,-1.34073 -1.34167,-1.3403l-4.9476,-0.00043c-0.31232,0 -0.59452,0.11003 -0.82238,0.28763c-0.09682,0.06387 -0.18954,0.13724 -0.27474,0.22229l-13.97857,13.96114c-0.66794,0.66711 -0.6687,1.74766 0,2.41468l4.45844,4.45256c0.66695,0.66621 1.74972,0.66707 2.41779,0zm9.42597,-18.24285c0.54183,-0.54193 1.42166,-0.54193 1.9644,0c0.54268,0.54203 0.54268,1.42046 0,1.96245c-0.54269,0.54151 -1.42257,0.54151 -1.9644,0c-0.54263,-0.54203 -0.54263,-1.42046 0,-1.96245z\"/>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/tagging",
"tags": "",
"modifier": "TonGerner",
"modified": "20191226164228018",
"creator": "TonGerner",
"created": "20150806203451280"
},
"$:/plugins/tg/toolbar/license": {
"created": "20180125143639052",
"text": "[[Top toolbar plugin|http://tongerner.tiddlyspot.com/#Top%20toolbar%20plugin]] © Ton Gerner — 2018-2020\n\nMIT License: https://opensource.org/licenses/MIT",
"title": "$:/plugins/tg/toolbar/license",
"tags": "",
"modified": "20191228105918897"
},
"$:/plugins/tg/toolbar/list-standard-tags": {
"text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n{{$:/core/ui/Buttons/tag-manager}}\n</$set>\n</$set>\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n<small><$count filter=\"[all[current]tagging[]]\"/></small><br>\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}",
"title": "$:/plugins/tg/toolbar/list-standard-tags",
"modifier": "TonGerner",
"modified": "20191226164346566",
"creator": "TonGerner",
"created": "20140430135036880",
"caption": "Standard tags"
},
"$:/plugins/tg/toolbar/list-systemtags": {
"text": "\\define lingo-base() $:/language/SideBar/Tags/\n''All'' system tags used in this wiki<br>\n<$list filter=\"[all[shadows+tiddlers]tags[]is[system]sort[title]]\"><br>\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/> <small class=\"tc-menu-list-count\"><$count filter=\"[all[current]tagging[]]\"/></small>\n\n</$list>",
"title": "$:/plugins/tg/toolbar/list-systemtags",
"modifier": "TonGerner",
"modified": "20200215212035805",
"list-after": "$:/core/ui/MoreSideBar/Tags",
"creator": "TonGerner",
"created": "20140806181818854",
"caption": "All system tags"
},
"$:/plugins/tg/toolbar/readme": {
"text": "This plugin creates a toolbar on top of the screen.<br>\nWith buttons to replicate the functions normally only available in the sidebar and buttons for a few new functions: tagging in view mode, rename tags, delete a corrupt tiddler, list (open/all/recent/tags/untagged), new template tiddler, ...\n\n<<<\n''Note:''<br>''This plugin needs my $:/plugins/tg/layout plugin for general layout settings (available at http://tongerner.tiddlyspot.com/).''\n<<<\n\nSettings for the layout can be found in ~ControlPanel > Appearance > [[Plugin tweaks|$:/plugins/tg/layout/tweaks]].\n\nThe buttons in the toolbar can be switched on/off in ''~ControlPanel > Appearance > Toolbars > [[Top toolbar|$:/core/ui/ControlPanel/Toolbars/TopToolbar]]''. Drag and drop to change the ordering.\n\n<<<\n''Note:''\n\n* This plugin incorporates a slightly modified version of [[Danielo's TagsSearch plugin|http://braintest.tiddlyspot.com/#TagsSearch-Plugin]]\n* If the standard search button (<<icn $:/plugins/tg/toolbar/images/search>>) is used:\n** it needs to be the first button!\n** the top bar needs to have an appropriate height and backgroud color!\n* For toggling of sticky behaviour, see ~ControlPanel > Appearance > [[Plugin tweaks|$:/plugins/tg/layout/tweaks]] (tab Layout)\n* All 'List' buttons do not work via 'More actions'!\n<<<\n",
"title": "$:/plugins/tg/toolbar/readme",
"modifier": "TonGerner",
"modified": "20200314153011611",
"creator": "TonGerner",
"created": "20150724160944794"
},
"$:/plugins/tg/toolbar/rename-tags": {
"text": "<<tabs \"[[$:/plugins/tg/toolbar/rename-tags-normal]] [[$:/plugins/tg/toolbar/rename-tags-bulk]]\">>",
"title": "$:/plugins/tg/toolbar/rename-tags",
"tags": "",
"modifier": "TonGerner",
"modified": "20200225202006900",
"filter": "[tags[]!is[system]sort[title]]",
"creator": "TonGerner",
"created": "20150730072835309"
},
"$:/plugins/tg/toolbar/search": {
"text": "<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"searchTerm\" value={{{ [<searchTiddler>get[text]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search<searchTerm>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$scrollable class='tgc-scrollable-list'>\n{{$:/core/ui/SearchResults}}\n</$scrollable>\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n",
"title": "$:/plugins/tg/toolbar/search",
"modified": "20200302092212014",
"created": "20170629084351675"
},
"$:/plugins/tg/toolbar/search-bar": {
"text": "<div class=\"tgc-search\">{{$:/plugins/tg/toolbar/search}}</div>\n",
"title": "$:/plugins/tg/toolbar/search-bar",
"tags": "$:/tags/PageTemplate",
"modified": "20191226164911522",
"created": "20190211153816797"
},
"$:/plugins/tg/toolbar/search-delete-tiddlers": {
"text": "Inspired by [[Stephan Hradek/Matabele|https://groups.google.com/d/msg/tiddlywiki/U9GYlwVXp6M/lubA413asP4J]]\n\nEnter filter expression<br>\n<$reveal type=\"nomatch\" state=\"$:/state/example\" text=\"show\">\n<$button class=\"tc-btn-invisible tgc-slider\" set=\"$:/state/example\" setTo=\"show\">Examples ▷</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/state/example\" text=\"show\">\n\n<$button class=\"tc-btn-invisible tgc-slider\" set=\"$:/state/example\" setTo=\"hide\">Examples ▽</$button>\n\n|Example |filter |h\n|all tiddlers |`[is[tiddler]!is[system]]`|\n|all 'state' tiddlers |`[prefix[$:/state/]]`|\n|all 'temp' tiddlers |`[prefix[$:/temp/]]`|\n|tagged `mytag` |`[tag[mytag]]`|\n|tagged `mytag` containing 'Foo'|`[tag[mytag]search[Foo]]`|\n\n</$reveal>\n\n<$linkcatcher to=\"$:/temp/delete-filter\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/delete-filter\" tag=\"input\" placeholder=\"enter a filter expression\" default=\"\" size=25/>\n<$reveal state=\"$:/temp/delete-filter\" type=\"nomatch\" text=\"\">\n<$link to=\"\" class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$link>\n</$reveal>\n</div>\n</$linkcatcher>\n\nClick:\n\n* @@.tgc-underlined Title@@ to expand a tiddler\n* ''↗'' to open a tiddler\n* {{$:/core/images/delete-button}} to delete a tiddler\n* <$button><$set name=\"myVariable\" value={{$:/temp/delete-filter}}><$action-deletetiddler $filter=<<myVariable>> />Delete</$set></$button> to delete ''all'' tiddlers filtered with: ''{{$:/temp/delete-filter}}''\n\n<$list filter={{$:/temp/delete-filter}} template=\"$:/plugins/tg/toolbar/templates/expandable-tiddler\"/>\n\n<$button>\n<$set name=\"myVariable\" value={{$:/temp/delete-filter}}>\n<$action-deletetiddler $filter=<<myVariable>> />\nDelete\n</$set>\n</$button>\n''all'' tiddlers filtered with: ''{{$:/temp/delete-filter}}''",
"title": "$:/plugins/tg/toolbar/search-delete-tiddlers",
"modifier": "TonGerner",
"modified": "20200331121731712",
"creator": "TonGerner",
"created": "20160729193254618"
},
"$:/plugins/tg/toolbar/search-in-fields": {
"text": "\\define searchInField(field, for, ci)\n<$list filter=\"[!is[shadow]!is[system]regexp:$field$[$for$$ci$]limit[1]]\">\n<dt>$field$</dt>\n</$list>\n\n<$list filter=\"[!is[shadow]!is[system]regexp:$field$[$for$$ci$]]\">\n<dd><$link><$view field=\"title\"/></$link></dd>\n</$list>\n\\end\n\nThanks to [[Tobias Beer|https://tobibeer.github.io/tb5/#Searching%20In%20Tiddler%20Fields]]\n\n<style>.tc-advanced-search-check input {width:auto !important;}</style>\n\nSearch in fields... <span class=\"tc-advanced-search-check\"><$checkbox field=\"case-insensitive\" tiddler=\"$:/temp/advancedsearch\" checked=\"(?i)\"> case insensitive</$checkbox></span>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/> <$select field=\"field\" tiddler=\"$:/temp/advancedsearch\" default=\"\">\n<option value=\"\">*any</option>\n<$list filter=\"[!is[shadow]!is[system]fields[]sort[]]\" variable=\"field\">\n<option value=<<field>>><<field>></option>\n</$list>\n</$select>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$reveal state=\"$:/temp/advancedsearch!!field\" type=\"match\" text=\"\">\n<dl>\n<$list filter=\"[!is[shadow]!is[system]fields[]]\" variable=\"field\">\n\n<$reveal type=nomatch text=text default=<<field>>>\n<$macrocall $name=\"searchInField\" field=<<field>> for={{$:/temp/advancedsearch}} ci={{$:/temp/advancedsearch!!case-insensitive}}/>\n</$reveal>\n</$list>\n</dl>\n</$reveal>\n<$reveal state=\"$:/temp/advancedsearch!!field\" type=\"nomatch\" text=\"\">\n\n<dl>\n<$macrocall $name=\"searchInField\" field={{$:/temp/advancedsearch!!field}} for={{$:/temp/advancedsearch}} ci={{$:/temp/advancedsearch!!case-insensitive}}/>\n</dl>\n</$reveal>\n</$reveal>",
"title": "$:/plugins/tg/toolbar/search-in-fields",
"tags": "$:/tags/AdvancedSearch",
"modified": "20191226165043461",
"list-after": "$:/core/ui/AdvancedSearch/Filter",
"created": "20181226163508613",
"caption": "In Fields"
},
"$:/plugins/tg/toolbar/settings": {
"text": "!!Top toolbar settings\n<table class=\"tablestyle\">\n@@.brown ''Toolbar''@@\n<<tableRow \"Size 'Toolbar' buttons\" \"$:/plugins/tg/toolbar/styles\" \"button-size\">>\n<<tableRow \"Color 'Toolbar' buttons\" \"$:/plugins/tg/toolbar/styles\" \"button-color\">>\n<<tableRow \"Hover color 'Toolbar' buttons\" \"$:/plugins/tg/toolbar/styles\" \"button-hover-color\">>\n<<tableRow \"Start 'Toolbar'\" \"$:/plugins/tg/toolbar/styles\" \"toolbar-left\">>\n<<tableRow \"Top 'Toolbar'\" \"$:/plugins/tg/toolbar/styles\" \"toolbar-top\">>\n<<tableRow \"Button spacing 'Toolbar'\" \"$:/plugins/tg/toolbar/styles\" \"toolbar-button-spacing\">>\n@@.brown ''Menus''@@\n<<tableRow \"Scroll height 'list' menus\" \"$:/plugins/tg/toolbar/styles\" \"menus-scroll-height\">>\n<<tableRow \"Font size 'list' menus\" \"$:/plugins/tg/toolbar/styles\" \"menus-font-size\">>\n</table>\n<$button tooltip=\"Help\">\n<$action-sendmessage $message=\"tm-open-window\" $param=\"$:/plugins/tg/toolbar/settings-help\" height=\"450px\" width=\"700px\"/>Help</$button>\n",
"title": "$:/plugins/tg/toolbar/settings",
"tags": "$:/tags/plugin-tweaks",
"order": "6",
"modifier": "TonGerner",
"modified": "20200122201800356",
"creator": "TonGerner",
"created": "20140616162341822",
"caption": "Top toolbar"
},
"$:/plugins/tg/toolbar/settings-help": {
"text": "|Item|Entry |Description |Default |h\n|''Toolbar(s)'' |Size 'Toolbar' buttons|Size of toolbar buttons| 1.4em |\n|~|Color 'Toolbar' buttons|Color of toolbar buttons| `<<colour muted-foreground>>` |\n|~|Hover color 'Toolbar' buttons|Hover color of toolbar buttons| `<<colour foreground>>` |\n|~|Start 'Top toolbar' |Start of the top toolbar<br>(from the left)| 40px |\n|~|Top 'Toolbar'|Offset from top<br>(Top left + Top right bar)| 10px |\n|~|Button spacing 'Top toolbar' |Distance between buttons of Topbar toolbar<br>(Top left + Top right bar)| 5px |\n|''Menus'' |Scroll height 'list' menus |Scroll height of 'list' menus in toolbar | 400px |\n|~|Font size 'list' menus |Font size for 'list' menu entries | 1em |\n",
"title": "$:/plugins/tg/toolbar/settings-help",
"modifier": "TonGerner",
"modified": "20191230170318824",
"creator": "TonGerner",
"created": "20140616162513097"
},
"$:/plugins/tg/toolbar/styles": {
"created": "20150721080358195",
"text": "\\define if-no-search(text)\n<$reveal state=\"$:/state/search\" type=\"match\" text=\"yes\" default=\"tes\">$text$</$reveal>\n\\end\n\n<pre>/* STANDARD SEARCH IN TOOLBAR */\n/* DEFAULT NO SEARCH BOX */\n.tgc-search {\n display: none;\n}\n<<if-no-search \"\n.tgc-search {\n display: block;\n position: fixed;\n top: 0px;\n left: calc(40px + {{!!toolbar-left}});\n width: 100%;\n padding-top: {{!!toolbar-top}};\n background-color: {{$:/plugins/tg/layout/styles!!topbar-background-color}};\n z-index: 1300;\n}\n.tgc-scrollable {\n height: {{!!menus-scroll-height}};\n position: relative;\n}\nhtml .tgc-search svg {\n fill: {{!!button-color}};\n height: {{!!button-size}};\n width: {{!!button-size}};\n}\n\">>\n\n/* TOOLBAR */\n/* TOPBAR BUTTONS COLOR */\n.tc-topbar button svg {\n fill: {{!!button-color}};\n height: {{!!button-size}};\n width: {{!!button-size}};\n}\n\n.tc-topbar button:hover svg {\n fill:{{!!button-hover-color}};\n}\n\n/* SPACE BETWEEN TOOLBAR BUTTONS */\n.tc-topbar button {\n padding: 4px {{!!toolbar-button-spacing}};\n}\n\n/* TOP BAR LEFT/TOP */\n.tc-topbar-left {\n left: {{!!toolbar-left}};\n top: {{!!toolbar-top}};\n}\n\n/* TOP BAR RIGHT/TOP */\n.tc-topbar-right {\n top: {{!!toolbar-top}};\n}\n\n/* STYLES USED IN DROPDOWN (PREVIEW/CALENDAR */\n.tgc-dropdown {\n display: inline-block;\n}\n\n.tgc-dropdown-content {\n display: none;\n position: absolute;\n padding: 5px 10px;\n background-color: {{$:/plugins/tg/layout/styles!!topbar-background-color}};\n}\n\n.tgc-dropdown:hover .tgc-dropdown-content {\n display: block;\n}\n\n/* TIDDLER */\n/* TOP PADDING TIDDLER */\nhtml .tc-tiddler-frame {\n padding-top: {{!!tiddler-padding-top}};\n}\n\n/* SIZE OF TIDDLER CONTROL BUTTONS */\nhtml .tc-tiddler-controls button svg {\n height: {{!!tiddler-button-size}};\n}\n\n/* SPACE BETWEEN TIDDLER CONTROL BUTTONS */\nhtml .tc-tiddler-controls button {\n margin-left: {{!!tiddler-button-spacing}};\n}\n\n/* SCROLL HEIGHT MENUS IN TOOLBAR */\n.tgc-scrollable-list {\n padding: 0em;\n height: {{!!menus-scroll-height}};\n position: relative;\n}\n\n/* FONT SIZE MENUS */\n.tgc-font-size-menus {\n font-size: {{!!menus-font-size}};\n}\n\n/* DATES BOLD */\n.tgc-scrollable-list .tc-timeline {\n color: <<colour primary>>;\n font-weight: bold;\n}\n\n/* DUMMY BUTTON STYLE */\n.dummybutton {\n padding: 1px 8px 1px 8px;\n background-color: #DCDAD5;\n border-width: 2px;\n border-style: solid;\n border-color: white gray gray white;\n}\n\n/* SELECT STYLE */\n.tgc-select {\n width: 200px;\n}\n\n/* STYLES BELOW USED IN: */\n/* $:/plugins/tg/toolbar/templates/expandable-tiddler */\n/* $:/plugins/tg/toolbar/templates/replace-tags */\n\n/* CUT LONG STRINGS */\n.tgc-trim-string {\n white-space: nowrap; \n overflow: hidden; \n text-overflow: ellipsis;\n}\n\n.tgc-trim-string:hover {\n white-space: normal;\n overflow: inherit; \n}\n\n.tgc-message-box {\n border: 1px solid <<color message-border>>;\n background: <<color code-background>>;\n padding: 10px 21px 10px 21px;\n margin: -10px -21px -10px -21px;\n}\n\n.tgc-font-bold {\n font-weight: bold;\n}\n\n.tgc-underlined {\n border-bottom: 1px dotted;\n}\n\n/* Font-size More menu */\n.tgc-more {\n font-size: 1em;\n}\n\n/* Size close button in Tas search */\n.tc-remove-tag-button svg {\n font-size: 0.7em;\n vertical-align: middle;\n}\n</pre>",
"toolbar-top": "10px",
"toolbar-left": "40px",
"toolbar-button-spacing": "5px",
"title": "$:/plugins/tg/toolbar/styles",
"tags": "$:/tags/Stylesheet",
"modifier": "TonGerner",
"modified": "20200307180947569",
"menus-scroll-height": "400px",
"menus-font-size": "1em",
"creator": "TonGerner",
"button-size": "1.4em",
"button-hover-color": "<<colour foreground>>",
"button-color": "<<colour muted-foreground>>"
},
"$:/plugins/tg/toolbar/tag-handling": {
"text": "<<tabs \"[[$:/plugins/tg/toolbar/list-standard-tags]] [[$:/plugins/tg/toolbar/list-systemtags]] [[$:/plugins/tg/toolbar/list-systemtags-added]]\" \"[[$:/plugins/tg/toolbar/list-standard-tags]]\">>",
"title": "$:/plugins/tg/toolbar/tag-handling",
"tags": "",
"modifier": "TonGerner",
"modified": "20200215211513840",
"creator": "TonGerner",
"created": "20160731104557811"
},
"$:/plugins/tg/toolbar/tagging": {
"text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/> <$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">×</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\"/>\n\\end\n\n\\define tag-picker-actions()\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>\n</$list>\n</$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</div>\n",
"title": "$:/plugins/tg/toolbar/tagging",
"modifier": "TonGerner",
"modified": "20200222182438542",
"list-after": "$:/core/ui/ViewTemplate/tags",
"creator": "TonGerner",
"created": "20160111124429261"
},
"$:/plugins/tg/toolbar/tagssearch": {
"created": "20200304141554396",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/> <$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\"/>\n\\end\n\n\\define tag-links()\n<$link>\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>\n</$link>\n\\end\n\n\\define show-system()\n<div>\nSystem tiddlers:\n<$radio field=\"systemfilter\" value=\"\"> Show </$radio> <$radio field=\"systemfilter\" value=\"!is[system]\"> Hide </$radio>\n</div>\n\\end\n\n\\define tag-filter() [![$:/temp/search]!has[draft.of]!is[current]$(systemFilter)$$(searchFilter)$$(tagNames)$$(sorting)$]\n\nThanks to [[Danielo|http://braintest.tiddlyspot.com/#TagsSearch-Plugin]]\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$linkcatcher to=\"$:/temp/search\">\n<$link to=\"\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$link>\n</$linkcatcher>\n</$reveal>\n</div>\n\n<$fieldmangler tiddler=\"$:/temp/search\">\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$edit-text tiddler=\"$:/temp/NewTagName\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}\n</$button>\n</div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$linkcatcher set=\"$:/temp/NewTagName\" setTo=\"\" message=\"tm-add-tag\">\n<$list filter=\"[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]\">\n<<tag-links>>\n</$list>\n<hr>\n<$list filter=\"[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]\">\n<<tag-links>>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\n\n<$list filter=\"[[$:/temp/search]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>\n</$list>\n\n\n</$fieldmangler>\n\n<div style=\"display:inline;\"><<show-system>></div>\n<$set name=\"searchFilter\" value=<<search-filter \"$:/temp/search\">> >\n<$set name=\"tagNames\" value=<<extractTagsAsFilter \"$:/temp/search\">> >\n<$set name=\"systemFilter\" value={{!!systemfilter}}>\n<$set name=\"sorting\" value={{!!sortingfilter}}>\n\n\n<$select field=\"sortingfilter\" default=\"sort[created]\" tooltip=\"Choose sorting\" class=\"tgc-select\">\n<option>sort[created]</option>\n<option>!sort[created]</option>\n<option>sort[modified]</option>\n<option>!sort[modified]</option>\n<option>sort[title]</option>\n<option>!sort[title]</option>\n</$select>\n\nClick:\n\n* @@.tgc-underlined Title@@ to expand a tiddler\n* ''↗'' to open a tiddler\n* {{$:/core/images/delete-button}} to delete a tiddler\n\n<$list filter=<<tag-filter>> template=\"$:/plugins/tg/toolbar/templates/expandable-tiddler\">\n\n</$list>\n</$set></$set></$set>",
"title": "$:/plugins/tg/toolbar/tagssearch",
"tags": "$:/tags/AdvancedSearch",
"systemfilter": "",
"sortingfilter": "!sort[created]",
"modifier": "TonGerner",
"modified": "20200305153939432",
"creator": "TonGerner",
"caption": "Tags search"
},
"$:/plugins/tg/toolbar/templates/corrupt-tiddler": {
"text": "Inspired by [[Alberto Molina|https://groups.google.com/d/msg/tiddlywiki/JRtIBfv2WO4/lmtywZIMQy8J]]\n\n<$checkbox field=\"filter\" checked=\"[is[shadow]sort[]]\" unchecked=\"[!is[system]sort[]]\" default=\"[!is[system]sort[]]\"> Overridden shadow tiddlers included</$checkbox>\n\n<$select class=\"tgc-select\" tiddler='$:/temp/corrupt-tiddler'>\n<$list filter={{!!filter}}>\n<option>\n<$view field='title'/>\n</option>\n</$list>\n</$select>\n<$button class=\"tc-btn-invisible\" ><$action-deletetiddler $tiddler=\"$:/temp/corrupt-tiddler\"/>{{$:/core/images/close-button}}</$button>\n\n''Edit text of corrupt tiddler:''\n{{$:/plugins/tg/toolbar/corrupt-tiddler-input}}\n",
"title": "$:/plugins/tg/toolbar/templates/corrupt-tiddler",
"tags": "",
"modifier": "TonGerner",
"modified": "20200222185124680",
"filter": "[!is[system]sort[]]",
"creator": "TonGerner",
"created": "20160213131631987"
},
"$:/plugins/tg/toolbar/templates/expandable-tiddler": {
"created": "20160612134937083",
"text": "\\whitespace trim\n\n<div class=\"tgc-message-box\">\n<dt>\n<div class=\"tgc-trim-string tc-menu-list-item\">\n<abbr title=\"click to expand\">\n<$button popup=<<qualify \"$:/ExpState\">> class=\"tc-btn-invisible\" selectedClass=\"tgc-font-bold\">\n<$view field=\"title\"/>\n</$button>\n</abbr>\n<span title=\"click to open tiddler\">\n<$link> ↗</$link>\n</span>\n<span title=\"click to delete\">\n<$button message=\"tm-delete-tiddler\" class=\"tc-btn-invisible\" param={{!!title}}> {{$:/core/images/delete-button}}</$button>\n</span>\n<$list filter=\"[all[current]tags[]!prefix[$]sort[title]]\" template=\"$:/core/ui/TagTemplate\"/>\n</div>\n</dt>\n<dt>\n^^''<$view field=\"created\" format=\"date\" template=\"YYYY-0MM-0DD 0hh:0mm:0ss\" />'' / <$view field=\"modified\" format=\"date\" template=\"YYYY-0MM-0DD 0hh:0mm:0ss\" />^^\n</dt>\n</div>\n\n<$reveal state=<<qualify \"$:/ExpState\">> type=\"nomatch\" text=\"\">\n<$transclude mode=\"block\"/>\n</$reveal>\n",
"title": "$:/plugins/tg/toolbar/templates/expandable-tiddler",
"tags": "",
"modifier": "TonGerner",
"modified": "20200302204136720",
"creator": "TonGerner"
},
"$:/plugins/tg/toolbar/templates/new-tiddler": {
"text": "This is a - demo - template [[$:/plugins/tg/toolbar/templates/new-tiddler]] tagged with `task` and `field` color = #04B.\n\nMake your own template - with content, tag(s), and field(s) to your liking:\n\n* by modifying [[$:/plugins/tg/toolbar/templates/new-tiddler]]\n\n:''or''\n\n* by making your own template (e.g. [[MyTemplate]]) and modifying [[$:/plugins/tg/toolbar/buttons/new-template-tiddler]]: replace 'param=\"$:/plugins/tg/toolbar/templates/new-tiddler\"' by 'param=\"MyTemplate\"'.",
"title": "$:/plugins/tg/toolbar/templates/new-tiddler",
"tags": "task",
"modified": "20191226165904440",
"created": "20191226165752246",
"color": "#0044BB"
},
"$:/plugins/tg/toolbar/toggle-fields-handling": {
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define new-field()\n<$vars name={{$:/temp/newfieldname}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>",
"title": "$:/plugins/tg/toolbar/toggle-fields-handling",
"modified": "20200222182451483",
"list-after": "$:/core/ui/ViewTemplate/tags",
"created": "20190323080149511"
},
"$:/plugins/danielo/tagSearch/css": {
"created": "20140924100100430",
"modified": "20170313155351224",
"tags": "$:/tags/Stylesheet",
"title": "$:/plugins/danielo/tagSearch/css",
"type": "text/css",
"text": ".tc-advanced-search .tc-radio input { width: auto; }",
"modifier": "TonGerner"
},
"$:/plugins/danielo/tagSearch/macros/extractTagsAsFilter.js": {
"created": "20140110061443770",
"text": "/*\\\ncreated: 20140110061443770\ncreator: Danielo Rodriguez\nmodified: 20140415014136920\nmodifier: Danielo\ntags: macros\ntitle: $:/plugins/danielo/tagSearch/macros/extractTagsAsFilter.js\ntype: application/javascript\nmodule-type: macro\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\nThis is developed to .\n*/\n\nexports.name = \"extractTagsAsFilter\";\n\nexports.params = [\n\t{ name: \"tiddlerName\" }\n];\n\n/*\nRun the macro\n*/\nexports.run = function(tiddlerName) {\n var tiddler=$tw.wiki.getTiddler(tiddlerName);\n var result=\"\";\n if(tiddler && tiddler.fields.tags)\n {\n var tags=tiddler.fields.tags;\n for(var i=0; i<tags.length; i++)\n result+=\"tag[\"+tags[i]+\"]\";\n }\n\nreturn result;\n}\n\n})();",
"creator": "Danielo Rodriguez",
"modified": "20170313155325139",
"modifier": "TonGerner",
"tags": "macros",
"title": "$:/plugins/danielo/tagSearch/macros/extractTagsAsFilter.js",
"type": "application/javascript",
"module-type": "macro"
},
"$:/plugins/danielo/tagSearch/readme": {
"text": "This plugin allows you to refine searches using tags. It's possible to search without any tag and the opposite, using just tags as filter.\n\n!! How to use\nAfter installing it you will have a new tab in \"Advanced search\" tiddler. You can also transclude this search whatever you want just transcluding it\n\n```\n{{TagsSearch}}\n```\n\n\n",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/danielo/tagSearch/readme",
"modified": "20170313170222220",
"created": "20140927204347971"
},
"$:/plugins/danielo/tagSearch/SearchFilter": {
"created": "20140414232747021",
"modified": "20170313155436114",
"module-type": "macro",
"tags": "macros",
"title": "$:/plugins/danielo/tagSearch/SearchFilter",
"type": "application/javascript",
"text": "/*\\\ntitle: $:/macros/danielo/SearchFilter.js\ntype: application/javascript\nmodule-type: macro\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\nThis returns an empty search string if tiddlerName is empty. This avoids all tiddlers as result when using an empty as search string. \n*/\n\nexports.name = \"search-filter\";\n\nexports.params = [\n\t{ name: \"tiddlerName\" }\n];\n\n/*\nRun the macro\n*/\nexports.run = function(tiddlerName) {\n var tiddler=$tw.wiki.getTiddler(tiddlerName);\n var result=\"search{}\"; //by default,empty search\n if(tiddler && tiddler.fields.text.trim().length>0 || tiddler.fields.tags)\n {\n result=\"search{\"+tiddlerName+\"}\";\n }\n\nreturn result;\n}\n\n})();",
"modifier": "TonGerner"
},
"$:/core/ui/PageTemplate/topleftbar": {
"text": "\\define config-title()\n$:/config/TopLeftBarButtons/Visibility/$(listItem)$\n\\end\n\n<$view field=\"title\"/>\n<span class=\"tc-topbar tc-topbar-left\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\">\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$reveal>\n</$list>\n</span>\n",
"title": "$:/core/ui/PageTemplate/topleftbar",
"tags": "$:/tags/PageTemplate",
"modifier": "TonGerner",
"modified": "20180215164207696",
"creator": "TonGerner",
"created": "20160131125744806"
},
"$:/core/ui/ControlPanel/Toolbars/TopToolbar": {
"created": "20150727082309628",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/TopLeftBarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/TopLeftBar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/TopLeftBar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n",
"caption": "Top toolbar",
"creator": "TonGerner",
"modified": "20180215183112233",
"modifier": "TonGerner",
"tags": "$:/tags/ControlPanel/Toolbars",
"title": "$:/core/ui/ControlPanel/Toolbars/TopToolbar"
},
"$:/tags/TopLeftBar": {
"created": "20150810081323549",
"text": "The buttons in the toolbar can be switched on/off in ''~ControlPanel > Appearance > Toolbars > Top toolbar''. Drag and drop the buttons to change the ordering.\n\nAdditional buttons can become available when my 'tiddlersbar' or 'tabstory' plugin is used:\n\n\"\"\"\n$:/plugins/tg/tiddlersbar/button\n$:/plugins/tg/tabstory/button\n\"\"\"\n\n<<<\n''Note:''<br>To let $:/plugins/tg/tiddlersbar/button and/or $:/plugins/tg/tabstory/button show up in in ''ControlPanel > Appearance > Toolbars > Top toolbar'', you need to add a tag $:/tags/TopLeftBar to these buttons!\n<<<\n",
"title": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20200215111732753",
"creator": "TonGerner",
"list": "$:/plugins/tg/toolbar/buttons/search $:/plugins/tg/toolbar/buttons/advanced-search $:/plugins/tg/toolbar/buttons/toggle-sidebar $:/plugins/tg/toolbar/buttons/full-screen $:/plugins/tg/toolbar/buttons/home $:/plugins/tg/toolbar/buttons/refresh $:/plugins/tg/toolbar/buttons/close-all $:/plugins/tg/toolbar/buttons/controlpanel $:/plugins/tg/toolbar/buttons/sidebar $:/plugins/tg/toolbar/buttons/import $:/plugins/tg/toolbar/buttons/export-page $:/plugins/tg/toolbar/buttons/list-all $:/plugins/tg/toolbar/buttons/list-recent $:/plugins/tg/toolbar/buttons/toggle-recent_a-z $:/plugins/tg/toolbar/buttons/list-open-tiddlers $:/plugins/tg/toolbar/buttons/list-untagged-tiddlers $:/plugins/tg/toolbar/buttons/new-journal $:/plugins/tg/toolbar/buttons/new-template-tiddler $:/plugins/tg/toolbar/buttons/new-tiddler $:/plugins/tg/toolbar/buttons/theme $:/plugins/tg/toolbar/buttons/palette $:/plugins/tg/toolbar/buttons/storyview $:/plugins/tg/toolbar/buttons/toggle-sticky $:/plugins/tg/toolbar/buttons/toggle-editortoolbar $:/plugins/tg/toolbar/buttons/preview $:/plugins/tg/toolbar/buttons/toggle-preview $:/plugins/tg/toolbar/buttons/fold-all $:/plugins/tg/toolbar/buttons/unfold-all $:/plugins/tg/toolbar/buttons/permaview $:/plugins/tg/toolbar/buttons/save-wiki $:/plugins/tg/toolbar/buttons/toggle-tagging $:/plugins/tg/toolbar/buttons/toggle-field-handling $:/plugins/tg/toolbar/buttons/tiddler-manager $:/plugins/tg/toolbar/buttons/tag-handling $:/plugins/tg/toolbar/buttons/rename-tags $:/plugins/tg/toolbar/buttons/corrupt-tiddler $:/plugins/tg/toolbar/buttons/search-delete-tiddlers $:/plugins/tg/toolbar/buttons/calendar $:/plugins/tg/toolbar/buttons/more-toolbar-actions"
},
"$:/language/ControlPanel/Toolbars/TopLeftBar/Hint": {
"text": "Choose which tiddlers are displayed on the top left toolbar. Drag and drop to change the ordering",
"title": "$:/language/ControlPanel/Toolbars/TopLeftBar/Hint",
"tags": "",
"modified": "20170504081701002",
"created": "20170504074539994"
},
"$:/plugins/tg/toolbar/images/sort_a-z": {
"text": "<svg class=\"tc-image-button tgc-sort\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 447.874 447.874\">\n <path d=\"m83.719,0c-7.001,14.398 -13.75,29.15 -20.25,44.25s-13.111,31.044 -19.812,47.844c-6.702,16.8 -13.534,34.719 -20.531,53.719c-6.998,19 -14.387,39.694 -22.188,62.094l48.594,0c2.203,-7.202 4.646,-14.62 7.344,-22.219c2.698,-7.599 5.337,-15.182 7.938,-22.781l81,0c2.6,7.599 5.271,15.182 7.969,22.781s5.14,15.017 7.344,22.219l50.094,0c-7.801,-22.4 -15.187,-43.093 -22.188,-62.094c-7.001,-19 -13.864,-36.919 -20.562,-53.719c-6.699,-16.8 -13.337,-32.743 -19.938,-47.844c-6.601,-15.1 -13.326,-29.852 -20.125,-44.25c0,0 -44.689,0 -44.689,0zm21.312,47.094c1.202,3.003 2.782,7.112 4.781,12.312s4.362,11.201 7.062,18c2.701,6.799 5.531,14.3 8.531,22.5c3,8.2 6.114,16.81 9.312,25.812l-59.092,0c3.198,-9.003 6.337,-17.612 9.438,-25.812c3.1,-8.2 5.962,-15.701 8.562,-22.5s4.907,-12.8 6.906,-18s3.499,-9.309 4.5,-12.312zm218.031,30.906c-1.963,0 -3.924,1.086 -5.312,2.938s-2.187,4.445 -2.188,7.062l0,186l-27.281,-27.281c-1.833,-1.832 -4.44,-2.882 -7.031,-2.844c-2.493,0.039 -4.955,1.082 -6.719,2.844l-27.5,27.5c-1.8,1.8 -2.844,4.329 -2.844,6.875s1.043,5.075 2.844,6.875l91.656,91.625c1.8,1.8 4.329,2.844 6.875,2.844s5.075,-1.043 6.875,-2.844l91.625,-91.625c1.8,-1.8 2.875,-4.329 2.875,-6.875s-1.075,-5.075 -2.875,-6.875l-27.5,-27.5c-1.799,-1.796 -4.302,-2.844 -6.844,-2.844s-5.076,1.048 -6.875,2.844l-27.282,27.281l0,-186c0,-2.618 -0.799,-5.211 -2.188,-7.062s-3.349,-2.937 -5.312,-2.938l-44.999,0zm-293.937,161.969l0,39.312l93.281,0c-7.8,9.4 -16.243,20.036 -25.344,31.938c-9.1,11.902 -18.046,24.208 -26.844,36.906s-17.241,25.281 -25.344,37.781c-8.102,12.5 -14.966,23.858 -20.562,34.062l0,27.906l163.5,0l0,-39.312l-105.906,0c7.202,-12 15.424,-24.582 24.625,-37.781s18.507,-26.007 27.906,-38.406c9.399,-12.399 18.483,-23.842 27.281,-34.344c8.798,-10.501 16.41,-19.058 22.812,-25.656l0,-32.406l-155.405,0l0,0z\"/>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/sort_a-z",
"tags": "",
"modified": "20200110204922029",
"created": "20200110183213954"
},
"$:/plugins/tg/toolbar/buttons/toggle-recent_a-z": {
"text": "<$fieldmangler tiddler=\"$:/plugins/tg/layout/timeline-macro\">\n<$list filter=\"[[$:/plugins/tg/layout/timeline-macro]tag[$:/tags/Macro]]\">\n<$button message=\"tm-remove-tag\" tooltip=\"Sort recent alphabetical\" param=\"$:/tags/Macro\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tgc-active-indicator\">\n{{$:/plugins/tg/toolbar/images/sort_a-z}}\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"sort normal\"/>\n</$list>\n</$button>\n</$list>\n\n<$list filter=\"[[$:/plugins/tg/layout/timeline-macro]!tag[$:/tags/Macro]]\">\n<$button message=\"tm-add-tag\" tooltip=\"Sort recent alphabetical\" param=\"$:/tags/Macro\" class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tg/toolbar/images/sort_a-z}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<$text text=\"sort alphabetical\"/>\n</$list>\n</$button>\n</$list>\n</$fieldmangler>",
"title": "$:/plugins/tg/toolbar/buttons/toggle-recent_a-z",
"tags": "$:/tags/TopLeftBar",
"modified": "20200313133035082",
"description": "Sort recent alphabetical",
"created": "20200110171112675",
"caption": "{{$:/plugins/tg/toolbar/images/sort_a-z}} sorting"
},
"$:/plugins/tg/toolbar/buttons/preview": {
"text": "<div class=\"tgc-dropdown\">\n<$button class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/preview-open}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"toggle preview\"/></span>\n</$list>\n</$button>\n<div class=\"tgc-dropdown-content\"><$transclude tiddler=\"$:/plugins/tg/toolbar/preview_modes\" mode=\"block\"/></div>\n</div>\n",
"title": "$:/plugins/tg/toolbar/buttons/preview",
"tags": "$:/tags/TopLeftBar",
"modified": "20200215110450916",
"description": "Toggle preview",
"created": "20200214130208820",
"caption": "{{$:/core/images/preview-open}} toggle preview"
},
"$:/plugins/tg/toolbar/preview_modes": {
"created": "20200214130542330",
"text": "Preview <$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"no\"><$button set=\"$:/state/showeditpreview\" setTo=\"no\" tooltip=\"Hide preview\" class=\"tc-btn-invisible\">{{$:/core/images/preview-open}}</$button></$reveal><$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"no\"><$button set=\"$:/state/showeditpreview\" setTo=\"yes\" tooltip=\"Show preview\" class=\"tc-btn-invisible\">{{$:/core/images/preview-closed}}</$button></$reveal><br>\nScrollable <$checkbox tiddler=\"$:/plugins/tg/layout/style_scroll_preview\" tag=\"$:/tags/Stylesheet\"></$checkbox>\n",
"title": "$:/plugins/tg/toolbar/preview_modes",
"tags": "",
"modified": "20200308160941120"
},
"$:/plugins/tg/toolbar/list-systemtags-added": {
"text": "\\define lingo-base() $:/language/SideBar/Tags/\nAll ''added'' system tags in this wiki:<br>\n<$list filter=\"[all[tiddlers]tags[]is[system]sort[title]]\"><br>\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/> <small class=\"tc-menu-list-count\"><$count filter=\"[all[current]tagging[]]\"/></small>\n\n</$list>",
"title": "$:/plugins/tg/toolbar/list-systemtags-added",
"tags": "",
"modifier": "TonGerner",
"modified": "20200215212020174",
"list-after": "$:/core/ui/MoreSideBar/Tags",
"creator": "TonGerner",
"created": "20200215211302465",
"caption": "Added system tags"
},
"$:/plugins/tg/toolbar/rename-tags-bulk": {
"created": "20200215205247413",
"text": "\\define list_links(filter)\n\\whitespace trim\n<$list filter=\"$filter$\">\n<$link to={{!!title}}>\n</$link><br>\n</$list>\n\\end\n\n!! Bulk rename tags\nInspired by [[RichardWilliamSmith|https://github.com/Jermolene/TiddlyWiki5/issues/1614#issuecomment-424881618]]\n\n<<<\n''Note:''\n\n* ''Be careful, you cannot undo this!''\n* You can only rename to an ''existing'' tag (otherwise use the [['standard' Rename|$:/plugins/tg/toolbar/rename-tags-normal]])\n* Do not rename core tags like `$:/tags/Stylesheet`; rename only your own`$` tags!\n<<<\n\n|borderless|k\n|''Change from'' <$select class=\"tgc-select\" tiddler=<<currentTiddler>> field=\"tag2remove\"><$list filter='[all[tiddlers]tags[]]'><option value=<<currentTiddler>> field=\"tag2remove\"><$view field='title'/></option></$list></$select>| ''to'' |<$select class=\"tgc-select\" tiddler=<<currentTiddler>> field=\"tag2add\"><$list filter='[all[tiddlers]tags[]]'><option value=<<currentTiddler>> field=\"tag2add\"><$view field='title'/></option></$list></$select> <$button class=\"tc-btn-invisible\" ><$action-deletefield tag2add tag2remove/> {{$:/core/images/close-button}}</$button>|\n|^<<list_links filter:\"[all[shadows+tiddlers]tag{!!tag2remove}]\">>||^<<list_links filter:\"[all[shadows+tiddlers]tag{!!tag2add}]\">>|\n|<$set name=\"newTag\" value={{!!tag2add}}><$set name=\"oldTag\" value={{!!tag2remove}}><$reveal type=\"nomatch\" state=\"!!tag2add\" text=\"\"><$button><$list filter=\"[all[shadows+tiddlers]tag{!!tag2remove}]\"><$fieldmangler><$action-sendmessage $message=\"tm-add-tag\" $param=<<newTag>>/><$action-sendmessage $message=\"tm-remove-tag\" $param=<<oldTag>>/></$fieldmangler></$list>Bulk rename</$button></$reveal></$set></$set>|||\n",
"title": "$:/plugins/tg/toolbar/rename-tags-bulk",
"tags": "",
"modified": "20200307194604402",
"caption": "Bulk rename"
},
"$:/plugins/tg/toolbar/rename-tags-normal": {
"created": "20200307162621008",
"text": "\\define lingo-base() $:/language/EditTemplate/\n!! Rename (or delete) tags\n\nInspired by [[Tobias Beer|https://tobibeer.github.io/tb5/#Search%20And%20Replace%20Tag]]\n\n<<<\n''Note:''\n\n* You can ''delete'' tags by letting the 'tag to add' field blank\n* You can check the tiddlers before renaming\n* Do not rename core tags like `$:/tags/Stylesheet`; rename only your own`$` tags!\n<<<\n\n''Change from''\n<$fieldmangler>\n<$edit-text\ntiddler=\"$:/temp/replace-tag\"\nfield=\"tag2remove\"\ntag=\"input\"\ndefault=\"\"\nplaceholder=\"tag to remove\"\nsize=16\nfocusPopup=<<qualify \"$:/state/popup/replace-tags\">>\nclass=\"tc-popup-handle\"/>\n<$button\npopup=<<qualify \"$:/state/popup/replace-tags\">>\nclass=\"tc-btn-invisible tc-btn-dropdown\"\ntooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}}\naria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>\n{{$:/core/images/down-arrow}}</$button>\n ''to'' \n<$edit-text\ntiddler=\"$:/temp/replace-tag\"\nfield=\"tag2add\"\ntag=\"input\"\ndefault=\"\"\nplaceholder=\"tag to add\"\nsize=16/>\n<$reveal state=\"$:/temp/replace-tag!!tag2remove\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\">\n<$action-deletetiddler $tiddler=\"$:/temp/replace-tag\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal\nstate=<<qualify \"$:/state/popup/replace-tags\">>\ntype=\"nomatch\"\ntext=\"\"\ndefault=\"\">\n<div class=\"tc-block-dropdown\">\n<$linkcatcher to=\"$:/temp/replace-tag!!tag2remove\">\n<$list filter=\"[tags[]search:title{$:/temp/replace-tag!!tag2remove}sort[]]\">\n{{||$:/core/ui/Components/tag-link}}\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n</$fieldmangler>\n\nClick:\n\n* @@.tgc-underlined Title@@ to expand a tiddler\n* ''↗'' to open a tiddler\n* <button> {{$:/plugins/tg/toolbar/images/replace-tag}}</button> to replace tag\n\n<$list filter='[tag{$:/temp/replace-tag!!tag2remove}]' template=\"$:/plugins/tg/toolbar/templates/replace-tags\"/>\n",
"title": "$:/plugins/tg/toolbar/rename-tags-normal",
"tags": "rename",
"modified": "20200307180448236",
"caption": "Rename"
},
"$:/plugins/tg/toolbar/images/replace-tag": {
"created": "20200307174355345",
"text": "<svg class=\"tgc-replace-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 512 512\">\n<path d=\"M269 2c-6 3-8 5-11 11-2 4-2 6-2 72 0 64 0 69 2 72 2 6 7 11 12 12 5 2 223 2 228 0 5-1 10-6 12-12 2-3 2-8 2-72V17l-2-5c-3-5-5-7-11-10-4-2-6-2-115-2H274l-5 2zm200 83v43H299V43h170v42zM132 66c-28 6-52 27-62 53-6 14-6 20-6 65v41l-17-16-17-17-15 15-15 16 37 36c39 39 39 39 49 39l9-2 40-38 36-36-15-15-15-15-17 17-17 16v-41c0-38 0-41 2-47 4-14 15-24 29-29l40-1h35V64h-36c-31 0-38 0-45 2zM423 214l-6 2c-2 1-20 18-39 38l-36 36 15 15 15 15 16-17 17-16v41c0 38 0 41-2 47-4 14-14 24-29 29l-40 1h-35v43h35c39 0 46-1 59-6 21-7 40-26 48-46 6-15 7-21 7-68v-42l17 17 17 17 15-15 15-16-37-36c-27-28-37-37-40-38-6-2-9-2-12-1zM16 342c-7 2-11 6-14 12-2 4-2 8-2 73 0 66 0 68 2 72 3 6 5 8 11 11l5 2h110c109 0 111 0 115-2 6-3 8-5 11-11l2-4v-68c0-64 0-69-2-72-2-5-6-10-11-12l-113-2-114 1zm197 84v43H43v-85h170v43z\"/>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/replace-tag",
"tags": "",
"modified": "20200307174543025"
},
"$:/plugins/tg/toolbar/templates/replace-tags": {
"created": "20200307164640132",
"text": "\\whitespace trim\n\n<div class=\"tgc-message-box\">\n<dt>\n<div class=\"tgc-trim-string tc-menu-list-item\">\n<abbr title=\"click to expand\">\n<$button popup=<<qualify \"$:/ExpState\">> class=\"tc-btn-invisible\" selectedClass=\"tgc-font-bold\">\n<$view field=\"title\"/>\n</$button>\n</abbr>\n<span title=\"click to open tiddler\">\n<$link> ↗</$link> \n</span>\n<$fieldmangler tiddler=<<currentTiddler>>>\n<$button tooltip=\"Click to replace tag\">\n{{$:/plugins/tg/toolbar/images/replace-tag}}\n<$action-sendmessage $message=\"tm-remove-tag\"\n$param={{$:/temp/replace-tag!!tag2remove}}/>\n<$action-sendmessage $message='tm-add-tag'\n$param={{$:/temp/replace-tag!!tag2add}}/>\n</$button>\n</$fieldmangler>\n</div>\n</dt>\n<dt>\n^^''<$view field=\"created\" format=\"date\" template=\"YYYY-0MM-0DD 0hh:0mm:0ss\" />'' / <$view field=\"modified\" format=\"date\" template=\"YYYY-0MM-0DD 0hh:0mm:0ss\" />^^\n</dt>\n</div>\n\n<$reveal state=<<qualify \"$:/ExpState\">> type=\"nomatch\" text=\"\">\n<$transclude mode=\"block\"/>\n</$reveal>\n",
"title": "$:/plugins/tg/toolbar/templates/replace-tags",
"tags": "",
"modifier": "TonGerner",
"modified": "20200307180239673",
"creator": "TonGerner"
},
"$:/plugins/tg/toolbar/images/editor-toolbar-no": {
"text": "<svg <svg class=\"tgc-no-toolbar-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 1600 1600\">\n<path d=\"M50 800v300h1500V500H50v300zm1400 0v200H150V600h1300v200z\"/>\n<path d=\"M250 800v100h200V700H250v100zM550 800v100h200V700H550v100zM931 701.4c-21.1 4.5-39.3 14.6-54 30.2-11.4 12.1-19.7 27-24.2 43.4-2 7.3-2.3 10.8-2.3 25s.3 17.7 2.3 25c7.9 28.9 27.1 52.1 53.7 65 15.8 7.8 23.8 9.5 43.5 9.5 19.7-.1 27.8-1.8 43.5-9.5 26.6-12.9 45.9-36.2 53.6-65 2-7.2 2.3-11 2.4-25 0-19.7-1.7-27.7-9.5-43.5-10.4-21.4-26.6-37.3-48.3-47.5-13.5-6.3-22-8.2-39.2-8.6-10.1-.2-17.1.1-21.5 1zM1150 800v100h200V700h-200v100z\"/>\n<path stroke=\"#000\" stroke-width=\"5\" d=\"M274.431 1377.251L1083.268 128.83l99.025 64.157-808.837 1248.421z\"/>\n</svg>",
"title": "$:/plugins/tg/toolbar/images/editor-toolbar-no",
"tags": "",
"modified": "20200313134703767",
"created": "20200313133518805"
}
}
}
\define if-no-search(text)
<$reveal state="$:/state/search" type="match" text="yes" default="tes">$text$</$reveal>
\end
<pre>/* STANDARD SEARCH IN TOOLBAR */
/* DEFAULT NO SEARCH BOX */
.tgc-search {
display: none;
}
<<if-no-search "
.tgc-search {
display: block;
position: fixed;
top: 0px;
left: calc(40px + {{!!toolbar-left}});
width: 100%;
padding-top: {{!!toolbar-top}};
background-color: {{$:/plugins/tg/layout/styles!!topbar-background-color}};
z-index: 1300;
}
.tgc-scrollable {
height: {{!!menus-scroll-height}};
position: relative;
}
html .tgc-search svg {
fill: {{!!button-color}};
height: {{!!button-size}};
width: {{!!button-size}};
}
">>
/* TOOLBAR */
/* TOPBAR BUTTONS COLOR */
.tc-topbar button svg {
fill: {{!!button-color}};
height: {{!!button-size}};
width: {{!!button-size}};
}
.tc-topbar button:hover svg {
fill:{{!!button-hover-color}};
}
/* SPACE BETWEEN TOOLBAR BUTTONS */
.tc-topbar button {
padding: 4px {{!!toolbar-button-spacing}};
}
/* TOP BAR LEFT/TOP */
.tc-topbar-left {
left: {{!!toolbar-left}};
top: {{!!toolbar-top}};
}
/* TOP BAR RIGHT/TOP */
.tc-topbar-right {
top: {{!!toolbar-top}};
}
/* STYLES USED IN DROPDOWN (PREVIEW/CALENDAR */
.tgc-dropdown {
display: inline-block;
}
.tgc-dropdown-content {
display: none;
position: absolute;
padding: 5px 10px;
background-color: {{$:/plugins/tg/layout/styles!!topbar-background-color}};
}
.tgc-dropdown:hover .tgc-dropdown-content {
display: block;
}
/* TIDDLER */
/* TOP PADDING TIDDLER */
html .tc-tiddler-frame {
padding-top: {{!!tiddler-padding-top}};
}
/* SIZE OF TIDDLER CONTROL BUTTONS */
html .tc-tiddler-controls button svg {
height: {{!!tiddler-button-size}};
}
/* SPACE BETWEEN TIDDLER CONTROL BUTTONS */
html .tc-tiddler-controls button {
margin-left: {{!!tiddler-button-spacing}};
}
/* SCROLL HEIGHT MENUS IN TOOLBAR */
.tgc-scrollable-list {
padding: 0em;
height: {{!!menus-scroll-height}};
position: relative;
}
/* FONT SIZE MENUS */
.tgc-font-size-menus {
font-size: {{!!menus-font-size}};
}
/* DATES BOLD */
.tgc-scrollable-list .tc-timeline {
color: <<colour primary>>;
font-weight: bold;
}
/* DUMMY BUTTON STYLE */
.dummybutton {
padding: 1px 8px 1px 8px;
background-color: #DCDAD5;
border-width: 2px;
border-style: solid;
border-color: white gray gray white;
}
/* SELECT STYLE */
.tgc-select {
width: 200px;
}
/* STYLES BELOW USED IN: */
/* $:/plugins/tg/toolbar/templates/expandable-tiddler */
/* $:/plugins/tg/toolbar/templates/replace-tags */
/* CUT LONG STRINGS */
.tgc-trim-string {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.tgc-trim-string:hover {
white-space: normal;
overflow: inherit;
}
.tgc-message-box {
border: 1px solid <<color message-border>>;
background: <<color code-background>>;
padding: 10px 21px 10px 21px;
margin: -10px -21px -10px -21px;
}
.tgc-font-bold {
font-weight: bold;
}
.tgc-underlined {
border-bottom: 1px dotted;
}
/* Font-size More menu */
.tgc-more {
font-size: 1em;
}
/* Size close button in Tas search */
.tc-remove-tag-button svg {
font-size: 0.7em;
vertical-align: middle;
}
</pre>
\whitespace trim
\define lingo-base() $:/language/EditTemplate/
\define tag-styles()
background-color:$(backgroundColor)$;
fill:$(foregroundColor)$;
color:$(foregroundColor)$;
\end
\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)
\whitespace trim
<$vars foregroundColor=<<contrastcolour target:"""$colour$""" fallbackTarget:"""$fallbackTarget$""" colourA:"""$colourA$""" colourB:"""$colourB$""">> backgroundColor="""$colour$""">
<span style=<<tag-styles>> class="tc-tag-label tc-tag-list-item">
<$transclude tiddler="""$icon$"""/> <$view field="title" format="text" />
<$button message="tm-remove-tag" param={{!!title}} class="tc-btn-invisible tc-remove-tag-button">×</$button>
</span>
</$vars>
\end
\define tag-body(colour,palette,icon)
<$macrocall $name="tag-body-inner" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon="""$icon$"""/>
\end
\define tag-picker-actions()
<$action-listops
$tiddler=<<currentTiddler>>
$field="tags"
$subfilter="[<tag>] [all[current]tags[]]"
/>
\end
<div class="tc-edit-tags">
<$fieldmangler>
<$list filter="[all[current]tags[]sort[title]]" storyview="pop">
<$macrocall $name="tag-body" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>
</$list>
</$fieldmangler>
<$macrocall $name="tag-picker" actions=<<tag-picker-actions>>/>
</div>
\define lingo-base() $:/language/EditTemplate/
\define config-title()
$:/config/EditTemplateFields/Visibility/$(currentField)$
\end
\define config-filter()
[[hide]] -[title{$(config-title)$}]
\end
\define new-field()
<$vars name={{$:/temp/newfieldname}}>
<$reveal type="nomatch" text="" default=<<name>>>
<$button>
<$action-sendmessage $message="tm-add-field"
$name=<<name>>
$value={{$:/temp/newfieldvalue}}/>
<$action-deletetiddler $tiddler="$:/temp/newfieldname"/>
<$action-deletetiddler $tiddler="$:/temp/newfieldvalue"/>
<<lingo Fields/Add/Button>>
</$button>
</$reveal>
<$reveal type="match" text="" default=<<name>>>
<$button>
<<lingo Fields/Add/Button>>
</$button>
</$reveal>
</$vars>
\end
<div class="tc-edit-fields">
<table class="tc-edit-fields">
<tbody>
<$list filter="[all[current]fields[]] +[sort[title]]" variable="currentField">
<$list filter=<<config-filter>> variable="temp">
<tr class="tc-edit-field">
<td class="tc-edit-field-name">
<$text text=<<currentField>>/>:</td>
<td class="tc-edit-field-value">
<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>
</td>
<td class="tc-edit-field-remove">
<$button class="tc-btn-invisible" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>
<$action-deletefield $field=<<currentField>>/>
{{$:/core/images/delete-button}}
</$button>
</td>
</tr>
</$list>
</$list>
</tbody>
</table>
</div>
<$fieldmangler>
<div class="tc-edit-field-add">
<em class="tc-edit">
<<lingo Fields/Add/Prompt>>
</em>
<span class="tc-edit-field-add-name">
<$edit-text tiddler="$:/temp/newfieldname" tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify "$:/state/popup/field-dropdown">> class="tc-edit-texteditor tc-popup-handle"/>
</span>
<$button popup=<<qualify "$:/state/popup/field-dropdown">> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>
<$reveal state=<<qualify "$:/state/popup/field-dropdown">> type="nomatch" text="" default="">
<div class="tc-block-dropdown tc-edit-type-dropdown">
<$set name="tv-show-missing-links" value="yes">
<$linkcatcher to="$:/temp/newfieldname">
<div class="tc-dropdown-item">
<<lingo Fields/Add/Dropdown/User>>
</div>
<$list filter="[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type" variable="currentField">
<$link to=<<currentField>>>
<<currentField>>
</$link>
</$list>
<div class="tc-dropdown-item">
<<lingo Fields/Add/Dropdown/System>>
</div>
<$list filter="[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]" variable="currentField">
<$link to=<<currentField>>>
<<currentField>>
</$link>
</$list>
</$linkcatcher>
</$set>
</div>
</$reveal>
<span class="tc-edit-field-add-value">
<$edit-text tiddler="$:/temp/newfieldvalue" tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class="tc-edit-texteditor"/>
</span>
<span class="tc-edit-field-add-button">
<$macrocall $name="new-field"/>
</span>
</div>
</$fieldmangler>
{
"tiddlers": {
"$:/plugins/tg/topmenu/help": {
"created": "20170615111129252",
"text": "\\define source(tiddler)\n<pre><$view tiddler=\"$tiddler$\" format=\"text\"/></pre>\n\\end\n\nThe [[top menu|$:/plugins/tg/topmenu/topmenu]] needs to be populated with tag based entries. The [[top menu|$:/plugins/tg/topmenu/topmenu]] contains:\n\n<<source $:/plugins/tg/topmenu/topmenu>>\n\nMenu entries need to te tagged with `tagpill1`, `tagpill2`, ...\n\n<<<\n''Note:''\n\n* The order of the menu entries can be changed by drag & drop\n* The color of the main menu items (tagpills) can be changed by adding a color field to the tags\n<<<",
"title": "$:/plugins/tg/topmenu/help",
"tags": "",
"modified": "20191230105500297"
},
"$:/plugins/tg/topmenu/icon": {
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 100 100\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:svg=\"http://www.w3.org/2000/svg\">\n<path fill=\"#a0a0ff\" stroke=\"#a0a0ff\" stroke-width=\"1.2218\" stroke-miterlimit=\"4\" id=\"path4142\" d=\"m48.98237,97.8691l-41.98313,-24.239l0,-48.47796l41.98313,-24.23897l41.98313,24.23897l0,48.47796l-41.98313,24.239z\"/>\n<path id=\"path5447\" d=\"m20.63027,34.25617l56.7551,0c2.61074,0 4.72959,-2.11886 4.72959,-4.72959c0,-2.61073 -2.11885,-4.72959 -4.72959,-4.72959l-56.7551,0c-2.61073,0 -4.72959,2.11886 -4.72959,4.72959c0,2.61073 2.11886,4.72959 4.72959,4.72959zm56.7551,9.45914l-56.7551,0c-2.61073,0 -4.72959,2.1189 -4.72959,4.72959c0,2.6108 2.11886,4.7296 4.72959,4.7296l56.7551,0c2.61074,0 4.72959,-2.1188 4.72959,-4.7296c0,-2.61069 -2.11885,-4.72959 -4.72959,-4.72959zm0,18.91839l-56.7551,0c-2.61073,0 -4.72959,2.1189 -4.72959,4.7296c0,2.6107 2.11886,4.7296 4.72959,4.7296l56.7551,0c2.61074,0 4.72959,-2.1189 4.72959,-4.7296c0,-2.6107 -2.11885,-4.7296 -4.72959,-4.7296z\"/>\n</svg>",
"type": "image/svg+xml",
"title": "$:/plugins/tg/topmenu/icon",
"modified": "20191230095735280",
"created": "20160109210345621"
},
"$:/plugins/tg/topmenu/license": {
"text": "[[Top menu plugin|http://tongerner.tiddlyspot.com/#Top%20menu%20plugin]] © Ton Gerner — 2018-2020\n\nMIT License: https://opensource.org/licenses/MIT",
"title": "$:/plugins/tg/topmenu/license",
"tags": "",
"modified": "20191230095759548",
"created": "20180124185811291"
},
"$:/plugins/tg/topmenu/menu-template": {
"text": "<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down tgc-menu-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n",
"title": "$:/plugins/tg/topmenu/menu-template",
"tags": "",
"modifier": "TonGerner",
"modified": "20191230095818405",
"creator": "TonGerner",
"created": "20150630194215349"
},
"$:/plugins/tg/topmenu/readme": {
"text": "This plugin adds a top menu.\n\nThe tiddler [[Top menu|$:/plugins/tg/topmenu/topmenu]] need to be populated with tag based top menu entries.\n\nFor more information see: http://tw5topmenu.tiddlyspot.com/\n\n<<<\n''Note:''<br>''This plugin needs my $:/plugins/tg/layout plugin for general layout settings (available at http://tongerner.tiddlyspot.com/).''\n<<<\n\nSettings for the layout can be found in ''~ControlPanel > Appearance > [[Plugin tweaks|$:/plugins/tg/layout/tweaks]]''.\n",
"title": "$:/plugins/tg/topmenu/readme",
"tags": "",
"modifier": "TonGerner",
"modified": "20191230095915420",
"creator": "TonGerner",
"created": "20150701112855953"
},
"$:/plugins/tg/topmenu/settings": {
"text": "!!Top menu settings\n<table class=\"tablestyle\">\n@@.brown ''General''@@\n<<tableRow \"Rounded corners\" \"$:/plugins/tg/topmenu/styles\" \"border-radius\">>\n@@.brown ''Top menu''@@\n<<tableRow \"Top 'Top menu'\" \"$:/plugins/tg/topmenu/styles\" \"topmenu-top\">>\n<<tableRow \"Left 'Top menu'\" \"$:/plugins/tg/topmenu/styles\" \"topmenu-left\">>\n<<tableRow \"Tagpill spacing\" \"$:/plugins/tg/topmenu/styles\" \"tagpill-spacing\">>\n<<tableRow \"Font-size menu\" \"$:/plugins/tg/topmenu/styles\" \"menu-font-size\">>\n@@.brown ''Dropdown menu''@@\n<<tableRow \"Font-size menu entries\" \"$:/plugins/tg/topmenu/styles\" \"menu-entry-font-size\">>\n<<tableRow \"Background color menu\" \"$:/plugins/tg/topmenu/styles\" \"menu-background-color\">>\n<<tableRow \"Color menu entries\" \"$:/plugins/tg/topmenu/styles\" \"menu-color\">>\n<<tableRow \"Hover color menu entry\" \"$:/plugins/tg/topmenu/styles\" \"hover-color\">>\n<<tableRow \"Hover background color menu entry\" \"$:/plugins/tg/topmenu/styles\" \"hover-background-color\">>\n\n</table>\n<$button tooltip=\"Help\">\n<$action-sendmessage $message=\"tm-open-window\" $param=\"$:/plugins/tg/topmenu/settings-help\" height=\"550px\" width=\"800px\"/>Help</$button>",
"title": "$:/plugins/tg/topmenu/settings",
"tags": "$:/tags/plugin-tweaks",
"order": "4",
"modifier": "TonGerner",
"modified": "20191230100011231",
"creator": "TonGerner",
"created": "20160111185911104",
"caption": "Top menu"
},
"$:/plugins/tg/topmenu/settings-help": {
"text": "|Item |Entry |Description |Default |h\n|General |Rounded corners |Main menu 'tagpills' and dropdown menu| 3px |\n|||||\n|Top menu |Top 'Top menu' |Start (from the top) of the top menu| 0px |\n|~|Left 'Top menu' |Start (from the left) of the top menu | 42px |\n|~|Tagpill spacing |Spacing between main menu entries | 0px |\n|~|Font-size menu |Font size main menu | 1.2em |\n|||||\n|Dropdown menu|Font size menu entries |Font-size of menu entries | 1em |\n|~|Background color menu |Background color dropdown menu | `<<colour background>>` |\n|~|Color menu entries |Color menu entries | `<<colour foreground>>` |\n|~|Hover color menu entry |Hover color menu entry | `<<colour background>>` |\n|~|Hover background color menu entry |Hover background color menu entry | `<<colour primary>>` |\n\n<<<\n''Note:''<br>\n@@.brown ''The color of the tag pills (= background color of the main menu entries) can be set by adding a color field to the tag.''@@\n<<<",
"title": "$:/plugins/tg/topmenu/settings-help",
"tags": "",
"modifier": "TonGerner",
"modified": "20191230100033151",
"creator": "TonGerner",
"created": "20150701110844646"
},
"$:/plugins/tg/topmenu/styles": {
"text": "<pre>/* TOP MENU */\n.tgc-topmenu {\n display: block;\n position: fixed;\n left: 0;\n top: 0px;\n margin-left: {{!!topmenu-left}};\n margin-top: {{!!topmenu-top}};\n font-size: {{!!menu-font-size}};\n z-index: 1500;\n}\n\n/* TOP MENU TAG PILL ENTRIES */\n/* html needed */\nhtml .tgc-topmenu .tc-tag-label {\n border-radius: {{!!border-radius}};\n}\n\n.tgc-menu-drop-down {\n min-width: 120px;\n background-color: {{!!menu-background-color}};\n padding: 10px 0px;\n border-radius: {{!!border-radius}};\n box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);\n font-size: {{!!menu-entry-font-size}};\ntext-decoration: none;\n}\n\n/* TAGS DROPDOWN LISTS */\n.tc-tag-list-item .tc-drop-down a {\n color: {{!!menu-color}};\n font-size: {{!!menu-entry-font-size}};\n}\n\n.tc-tag-list-item .tc-drop-down a:hover {\n color: {{!!hover-color}};\nbackground-color: {{!!hover-background-color}};\n}\n\n/* TAGPILL SPACING */\n.tgc-topmenu .tc-tag-label {\n margin-right: {{!!tagpill-spacing}};\n}\n</pre>",
"topmenu-top": "0px",
"topmenu-left": "42px",
"title": "$:/plugins/tg/topmenu/styles",
"tags": "$:/tags/Stylesheet",
"tagpill-spacing": "0px",
"modifier": "TonGerner",
"modified": "20191230100048028",
"menu-font-size": "1.2em",
"menu-entry-font-size": "1em",
"menu-color": "<<colour foreground>>",
"menu-background-color": "<<colour background>>",
"list-after": "$:/themes/tiddlywiki/vanilla/base",
"hover-color": "<<colour background>>",
"hover-background-color": "<<colour primary>>",
"creator": "TonGerner",
"created": "20160112193603578",
"button-border-radius": "3px",
"border-radius": "3px"
},
"$:/plugins/tg/topmenu/topmenu": {
"text": "<div class=\"tgc-topmenu\">\n{{tagpill1||$:/plugins/tg/topmenu/menu-template}}\n{{tagpill2||$:/plugins/tg/topmenu/menu-template}}\n</div>\n<!--\nA top menu with 2 'dummy' tag pills is shown above.\nReplace the dummy tags with your own tags and add more lines if needed.\n-->",
"title": "$:/plugins/tg/topmenu/topmenu",
"tags": "$:/tags/TopLeftBar",
"modifier": "TonGerner",
"modified": "20191230100112576",
"description": "Menu on top",
"creator": "TonGerner",
"created": "20150630194341608",
"caption": "{{$:/core/images/menu-button}} top menu"
}
}
}
<pre>/* TOP MENU */
.tgc-topmenu {
display: block;
position: fixed;
left: 0;
top: 0px;
margin-left: {{!!topmenu-left}};
margin-top: {{!!topmenu-top}};
font-size: {{!!menu-font-size}};
z-index: 1500;
}
/* TOP MENU TAG PILL ENTRIES */
/* html needed */
html .tgc-topmenu .tc-tag-label {
border-radius: {{!!border-radius}};
}
.tgc-menu-drop-down {
min-width: 120px;
background-color: {{!!menu-background-color}};
padding: 10px 0px;
border-radius: {{!!border-radius}};
box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
font-size: {{!!menu-entry-font-size}};
text-decoration: none;
}
/* TAGS DROPDOWN LISTS */
.tc-tag-list-item .tc-drop-down a {
color: {{!!menu-color}};
font-size: {{!!menu-entry-font-size}};
}
.tc-tag-list-item .tc-drop-down a:hover {
color: {{!!hover-color}};
background-color: {{!!hover-background-color}};
}
/* TAGPILL SPACING */
.tgc-topmenu .tc-tag-label {
margin-right: {{!!tagpill-spacing}};
}
</pre>
<div class="tgc-topmenu">
{{$:/core/ui/Buttons/home}}
{{Vliegtuigfoto button}}
{{Scheepsfoto button}}
{{Algemeen »||$:/plugins/tg/topmenu/menu-template}}
{{Hulp »||$:/plugins/tg/topmenu/menu-template}}
{{Techniek »||$:/plugins/tg/topmenu/menu-template}}
</div>
<!--
A top menu with 2 'dummy' tag pills is shown above.
Replace the dummy tags with your own tags and add more lines if needed.
-->
{
"tiddlers": {
"$:/plugins/tobibeer/appear/widget.js": {
"text": "/*\\\r\ntitle: $:/plugins/tobibeer/appear/widget.js\r\ntype: application/javascript\r\nmodule-type: widget\r\n\r\nUse the appear widget for popups, sliders, accordion menus\r\n\r\n@preserve\r\n\\*/\n(function(){\"use strict\";var t=require(\"$:/core/modules/widgets/widget.js\").widget,e=function(t,e){this.initialise(t,e)},i={};e.prototype=new t;e.prototype.render=function(t,e){this.parentDomNode=t;this.nextSibling=e;this.computeAttributes();this.execute();var i,s,r,a,h,n,l=[];if(this.handle){this.getHandlerCache(this.handle,1);this.refreshHandler()}else{s={type:\"button\"};s.attributes=this.setAttributes(s,\"button\");i=s.attributes[\"class\"].value.trim();s.attributes[\"class\"].value=i+\" appear-show\"+(this.handler?\" tc-popup-absolute\":\"\");s.children=this.wiki.parseText(\"text/vnd.tiddlywiki\",this.show,{parseAsInline:true}).tree;h={type:\"reveal\",children:this.parseTreeNode.children};h.attributes=this.setAttributes(h,\"reveal\");h.isBlock=!(this.mode&&this.mode===\"inline\");if(h.attributes.type&&h.attributes.type.value===\"popup\"){s.attributes.popup=h.attributes.state;l.push(s);if(!this.handler){l.push(h)}else{s.attributes.handler=this.handler}}else{h.attributes.type={type:\"string\",value:\"match\"};h.attributes.text={type:\"string\",value:this.currentTiddler};s.attributes.set=h.attributes.state;s.attributes.setTo={type:\"string\",value:this.currentTiddler};a={type:\"reveal\",isBlock:this.block,children:[s],attributes:{type:{type:\"string\",value:\"nomatch\"},state:h.attributes.state,text:{type:\"string\",value:this.currentTiddler}}};if(!this.once){r=$tw.utils.deepCopy(s);r.attributes[\"class\"].value=i+\" appear-hide \"+(this.attr.button.selectedClass?this.attr.button.selectedClass:\"\");r.attributes.setTo={type:\"string\",value:\"\"};r.children=this.wiki.parseText(\"text/vnd.tiddlywiki\",this.hide,{parseAsInline:true}).tree}n=$tw.utils.deepCopy(a);n.children=[];if(!this.once){n.children.push(r)}if(!this.handler){n.children.push(h)}n.attributes.type.value=\"match\";l.push(a,n)}this.makeChildWidgets(l);this.renderChildren(this.parentDomNode,e);if(this.handler){this.addToHandlerCache(h)}}};e.prototype.execute=function(){var t=this;this.attr={map:{reveal:{\"class\":1,position:1,retain:1,state:1,style:1,tag:1,type:1},button:{\"button-class\":1,\"button-style\":1,\"button-tag\":1,tooltip:1,selectedClass:1}},rename:{\"button-class\":\"class\",\"button-style\":\"style\",\"button-tag\":\"tag\"},button:{},reveal:{}};$tw.utils.each(this.attributes,function(e,i){var s;$tw.utils.each(t.attr.map,function(r,a){$tw.utils.each(Object.keys(r),function(r){if(r==i){t.attr[a][i]=e;s=false;return false}});return s})});this.currentTiddler=this.getVariable(\"currentTiddler\");this.show=this.getValue(this.attributes.show,\"show\");this.hide=this.getValue(this.attributes.hide,\"hide\");if(!this.hide){this.hide=this.show}this.once=this.attributes.once&&this.attributes.once!==\"false\";this.$state=this.attributes.$state;this.mode=this.getValue(this.attributes.mode,\"mode\");this.handle=this.attributes.handle;this.handler=this.attributes.handler;this.handlerVariables=(this.attributes.variables||\"\")+\" currentTiddler\";this.keep=[\"yes\",\"true\"].indexOf((this.getValue(this.attributes.keep,\"keep\")||\"\").toLocaleLowerCase())>-1;if(!this.attr.reveal.state){this.attr.reveal.state=this.getValue(undefined,\"default-state\")+this.currentTiddler+this.getStateQualifier()+\"/\"+(this.attr.reveal.type?this.attr.reveal.type+\"/\":\"\")+(this.mode?this.mode+\"/\":\"\")+(this.once?\"once/\":\"\")+(this.$state?\"/\"+this.$state:\"\")}};e.prototype.refresh=function(t){var e=this.computeAttributes();if(Object.keys(e).length){this.refreshSelf();return true}if(this.handle){this.refreshHandler()}return this.refreshChildren(t)};e.prototype.getValue=function(t,e){var i,s,r={show:\"»\",\"default-state\":\"$:/temp/appear/\"};if(t===undefined){i=this.wiki.getTiddler(\"$:/plugins/tobibeer/appear/defaults/\"+e);if(i){s=i.getFieldString(\"undefined\");if(!s||s===\"false\"){t=i.getFieldString(\"text\")}}}if(t===undefined){t=r[e]}return t};e.prototype.setAttributes=function(t,e){var i=this,s={};$tw.utils.each(Object.keys(this.attr.map[e]),function(r){var a,h=i.attr.rename[r];if(!h){h=r}a=i.getValue(i.attr[e][r],r);if(h===\"class\"){a=[\"appear\",\"appear-\"+e,e===\"reveal\"&&i.keep?\"tc-popup-keep\":\"\",i.mode?\"appear-\"+i.mode:\"\",i.once?\"appear-once\":\"\",a||\"\"].join(\" \")}if(a!==undefined){if(h===\"tag\"){t.tag=a}else{s[h]={type:\"string\",value:a}}}});return s};e.prototype.getHandlerCache=function(t,e){var s=i[t];if(!s||e){i[t]={handled:{},handle:{}};s=i[t]}return s};e.prototype.refreshHandler=function(){var t=this,e=this.getHandlerCache(this.handle),s=e.handle;if(Object.keys(s).length){$tw.utils.each(s,function(e,i){t.removeChildNode(i);t.children.push(t.makeChildWidget(e));t.children[t.children.length-1].render(t.parentDomNode,t.nextSibling)});i[this.handle].handle={}}};e.prototype.removeChildNode=function(t){var e=this;$tw.utils.each(this.children,function(i,s){if(i.children[0].state===t){i.removeChildDomNodes();e.children.splice(s);return false}})};e.prototype.addToHandlerCache=function(t){var e=this,i=t.attributes.state.value,s=this.getHandlerCache(this.handler),r=s.handled[i],a={type:\"vars\",children:[t],attributes:{}};$tw.utils.each((this.handlerVariables||\"\").split(\" \"),function(t){t=t.trim();if(t){a.attributes[t]={type:\"string\",value:(e.getVariable(t)||\"\").toString()}}});if(a!==r){s.handle[i]=a;this.wiki.setText(\"$:/temp/appear-handler/\"+this.handler,\"text\",undefined,i)}};exports.appear=e})();",
"title": "$:/plugins/tobibeer/appear/widget.js",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tobibeer/appear/defaults/show": {
"title": "$:/plugins/tobibeer/appear/defaults/show",
"text": "»"
},
"$:/plugins/tobibeer/appear/defaults/mode": {
"title": "$:/plugins/tobibeer/appear/defaults/mode",
"text": "block"
},
"$:/plugins/tobibeer/appear/defaults/keep": {
"title": "$:/plugins/tobibeer/appear/defaults/keep",
"text": "yes"
},
"$:/plugins/tobibeer/appear/defaults/button-class": {
"title": "$:/plugins/tobibeer/appear/defaults/button-class",
"text": "tc-btn-invisible tc-tiddlylink"
},
"$:/plugins/tobibeer/appear/defaults/default-state": {
"title": "$:/plugins/tobibeer/appear/defaults/default-state",
"text": "$:/temp/appear/"
},
"$:/plugins/tobibeer/appear/popup.js": {
"text": "/*\\\r\ntitle: $:/plugins/tobibeer/appear/popup.js\r\ntype: application/javascript\r\nmodule-type: utils\r\n\r\nAn enhanced version of the core Popup to support:\r\n* absolute popups\r\n* preview popups\r\n* popup z-index\r\n\r\n@preserve\r\n\\*/\n(function(){\"use strict\";var t=require(\"$:/core/modules/utils/dom/popup.js\").Popup,e=require(\"$:/core/modules/widgets/reveal.js\").reveal,s=e.prototype.refresh;t.prototype.show=function(t){var e,s=t.domNode,p=$tw.utils.hasClass(s,\"tc-popup-absolute\"),o=this.popupInfo(s),i=function(t){var e=t,s=0,p=0;do{s+=e.offsetLeft||0;p+=e.offsetTop||0;e=e.offsetParent}while(e);return{left:s,top:p}},l={left:s.offsetLeft,top:s.offsetTop};e=o.popupLevel;if(o.isHandle){e++}this.cancel(e);if(this.findPopup(t.title)===-1){this.popups.push({title:t.title,wiki:t.wiki,domNode:s})}l=p?i(s):l;t.wiki.setTextReference(t.title,\"(\"+l.left+\",\"+l.top+\",\"+s.offsetWidth+\",\"+s.offsetHeight+\")\");if(this.popups.length>0){this.rootElement.addEventListener(\"click\",this,true)}};t.prototype.popupInfo=function(t){var e,s=false,p=t;while(p&&e===undefined){if($tw.utils.hasClass(p,\"tc-popup-handle\")||$tw.utils.hasClass(p,\"tc-popup-keep\")){s=true}if($tw.utils.hasClass(p,\"tc-reveal\")&&($tw.utils.hasClass(p,\"tc-popup\")||$tw.utils.hasClass(p,\"tc-popup-handle\"))){e=parseInt(p.style.zIndex)-1e3}p=p.parentNode}var o={popupLevel:e||0,isHandle:s};return o};t.prototype.handleEvent=function(t){if(t.type===\"click\"){var e=this.popupInfo(t.target),s=e.popupLevel-1;if(e.isHandle){if(s<0){s=1}else{s++}}this.cancel(s)}};e.prototype.refresh=function(){var t,e,p=this.isOpen;e=s.apply(this,arguments);t=this.domNodes[0];if(this.isOpen&&(p!==this.isOpen||!t.style.zIndex)&&t&&(this.type===\"popup\"||$tw.utils.hasClass(t,\"tc-block-dropdown\")&&$tw.utils.hasClass(t,\"tc-reveal\"))){t.style.zIndex=1e3+$tw.popup.popups.length}return e}})();",
"title": "$:/plugins/tobibeer/appear/popup.js",
"type": "application/javascript",
"module-type": "utils"
},
"$:/plugins/tobibeer/appear/readme": {
"title": "$:/plugins/tobibeer/appear/readme",
"text": "This plugin provides the ''$appear'' widget that can render popups and sliders (inline or block) as well as accordion menus.\n\n!! Attributes\r\n; type\r\n: set to `popup` to have the content appear as a popup\r\n; show\r\n: the button label\r\n; hide\r\n: the hide button label\r\n; mode\r\n: either `block` or `inline`, with respect to the inner content\r\n: any other mode is interpreted as block mode, without the default styles applying, e.g. drop-shadows\r\n; once\r\n: allows to click the button once, then hides it (unless the state is deleted)\r\n; $state\r\n: the widget calculates a state for you, use this to append a simple id\r\n; state\r\n: alternatively, specify a fully qualified state\r\n; keep\r\n: make popups sticky when `yes` or `true`\r\n; handle / handler / variables\r\n: allows to take the popup contents out of the flow and render them elsewhere on the page\r\n: required to properly create popups in table cells and other constained elements\r\n: specify variables to take along\n\n<br>\n\n; documentation / examples / demos...\r\n: http://tobibeer.github.io/tw5-plugins#appear\r\n"
},
"$:/plugins/tobibeer/appear/styles": {
"title": "$:/plugins/tobibeer/appear/styles",
"tags": "$:/tags/Stylesheet",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n<pre>.tc-reveal.appear-block,\r\n.tc-popup.appear {\r\n\tborder-radius: 5px;\r\n\tpadding: 1px 1em;\r\n\t<<box-shadow \"2px 2px 4px rgba(0,0,0,0.3)\">>;\r\n}\r\n.tc-popup.appear {\r\n\tpadding: 0 1em;\r\n\tbackground: <<colour background>>;\r\n}\r\n.appear-reveal.appear-inline{\r\nmargin-left:5px;\r\n}\r\n.appear-reveal.appear-inline.appear-once{\r\nmargin-left:0;\r\n}</pre>"
}
}
}
tc-btn-invisible tgc-slider
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html
<pre>.tc-reveal.appear-block,
.tc-popup.appear {
background-color: #E8E8E8;
border-radius: 0.4em;
-moz-border-radius: 0.4em;
-webkit-border-radius: 0.4em;
padding: 1px 10px;
}
.tc-popup.appear {
background-color: #F4F4F4;
border: 2px solid gray;
padding: 1px 10px;
}
.appear-reveal.appear-inline {
margin-left:5px;
}
.appear-reveal.appear-inline.appear-once {
margin-left:0;
}</pre>
{
"tiddlers": {
"$:/plugins/tobibeer/random/filter.js": {
"title": "$:/plugins/tobibeer/random/filter.js",
"text": "/*\\\ntitle: $:/plugins/tobibeer/random/filter.js\ntype: application/javascript\nmodule-type: filteroperator\n\na filter to...\n\n@preserve\n\\*/\n(function(){\"use strict\";exports.random=function(n,t,r){var e,o=[],a=[],i=parseInt(t.operand||\"1\");if(isNaN(i)){i=1}n(function(n,t){a.push(t)});while(i&&a.length){e=Math.floor(Math.random()*a.length);o.push(a[e]);a.splice(e,1);i--}return o}})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/plugins/tobibeer/random/readme": {
"title": "$:/plugins/tobibeer/random/readme",
"text": "The plugin $:/plugins/tobibeer/random provides:\n\n; random[]\r\n: a filter retrieving one or more random titles from the input set\r\n: `[tag[Plugins]random[3]]` — returns three titles tagged [[Plugins]]\n\n<br>\n\n; documentation / examples / demos...\r\n: http://tobibeer.github.io/tw5-plugins#random"
}
}
}
{
"tiddlers": {
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$transclude tiddler={{!!icon}}/>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$set></$tiddler></$button><span class=\"wltc-link-to-tab\"><$link to=<<currentTiddler>> >{{$:/core/images/link}}</$link></span></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end"
},
"$:/core/ui/ControlPanel/Settings/link-to-tabs": {
"caption": "Link-to-Tabs plugin",
"tags": "$:/tags/ControlPanel/Settings",
"title": "$:/core/ui/ControlPanel/Settings/link-to-tabs",
"text": "<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"show-all-links\" checked=\"inline\" unchecked=\"none\" default=\"none\"> Show internal tab link for ''all tabs''</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"show-single-link\" checked=\"inline\" unchecked=\"none\" default=\"inline\"> Show internal tab link for ''selected tabs''</$checkbox>\n"
},
"$:/plugins/wikilabs/link-to-tabs/config": {
"title": "$:/plugins/wikilabs/link-to-tabs/config",
"show-all-links": "none",
"show-single-link": "inline",
"text": "This tiddler is used to configure the \"Link-to-tabs\" plugin behaviour. \n\nThere are 2 fields, which are used by [[$:/plugins/wikilabs/link-to-tabs/styles]] enable and disable the internal links. \n\n* show-all-links: {{!!show-all-links}}\r\n* show-single-link: {{!!show-single-link}}\r\n"
},
"$:/plugins/wikilabs/link-to-tabs/license": {
"title": "$:/plugins/wikilabs/link-to-tabs/license",
"text": "Link-to-Tabs-Macro (c) Mario Pietsch - 2016\n\nhttps://opensource.org/licenses/BSD-3-Clause"
},
"$:/plugins/wikilabs/link-to-tabs/styles": {
"tags": "$:/tags/Stylesheet",
"title": "$:/plugins/wikilabs/link-to-tabs/styles",
"text": "<pre>\n\n.wltc-link-to-tab {\n display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-all-links}};\n position: relative;\n top: -1em;\n left: -1.3em;\n font-size: 0.7em;\n opacity: 0.7;\n margin-right: -1em;\n}\n\n.wltc-link-to-tab svg{\n width: 1.4em;\n height: 1.4em;\n}\n\n.wltc-link-to-tab:hover {\n opacity: 1;\n}\n\n.tc-tab-selected + .wltc-link-to-tab {\n display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-single-link}};\n}\n\n.tc-vertical > .wltc-link-to-tab {\n top: -1.9em;\n left: 0;\n height: 0;\n float: right;\n}\n\n</pre>"
},
"$:/plugins/wikilabs/link-to-tabs/readme": {
"title": "$:/plugins/wikilabs/link-to-tabs/readme",
"text": "This plugin adds a little link icon to every tab. \n\n''Important:'' This plugin changes the core tabs macro.\n\n! Lint-to-Tabs Settings\n\n{{$:/core/ui/ControlPanel/Settings/link-to-tabs}}"
}
}
}
This tiddler is used to configure the "Link-to-tabs" plugin behaviour.
There are 2 fields, which are used by [[$:/plugins/wikilabs/link-to-tabs/styles]] enable and disable the internal links.
* show-all-links: {{!!show-all-links}}
* show-single-link: {{!!show-single-link}}
<pre>
.wltc-link-to-tab {
display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-all-links}};
position: relative;
top: -1em;
left: -1.3em;
font-size: 0.7em;
opacity: 0.0; /* 0.7 */
margin-right: -1em;
}
.wltc-link-to-tab svg {
fill: #0044BB;
width: 1.4em;
height: 1.4em;
}
.wltc-link-to-tab:hover {
opacity: 1;
}
.tc-tab-selected + .wltc-link-to-tab {
display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-single-link}};
}
.tc-vertical > .wltc-link-to-tab {
top: -1.9em;
left: 0;
height: 0;
float: right;
}
</pre>
|borderless|k
|''Show tiddler tags'' |<$checkbox tiddler="$:/core/ui/ViewTemplate/tags" tag="$:/tags/ViewTemplate"></$checkbox>|
<!-- Verberg knoppen en tabs -->
<$button>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel" text="hide"/>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import" text="hide"/>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions" text="hide"/>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="hide"/>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/save-wiki" text="hide"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone" text="hide"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here" text="hide"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions" text="hide"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit" text="hide"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info" text="hide"/>
<$action-setfield $tiddler="$:/core/ui/SideBar/Open" tags="-$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/core/ui/SideBar/Recent" tags="-$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/core/ui/SideBar/Tools" tags="-$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/core/ui/SideBar/More" tags="-$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/_bestanden" tags="-$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/_slider-macro-appear" tags="$:/tags/Macro"/>
<$action-setfield $tiddler="$:/_slider-macro-edit-appear" tags="-$:/tags/Macro"/>
<$action-setfield $tiddler="$:/config/Plugins/Disabled/$:/plugins/tg/toolbar" text="yes"/>
<$action-setfield $tiddler="$:/config/Plugins/Disabled/$:/plugins/wikilabs/link-to-tabs" text="yes"/>
<$action-setfield $tiddler="$:/publish-styles" tags="$:/tags/Stylesheet"/>
<$action-setfield $tiddler="$:/DefaultTiddlers" text="[[Over deze wiki]] [[Nieuw toegevoegd]]"/>
<$action-setfield $tiddler="$:/publish-button" tags="-$:/tags/TopRightBar"/>
<$action-setfield $tiddler="$:/state/sidebar" text="no"/>
<$action-setfield $tiddler="$:/temp/advancedsearch" text=""/>
<$action-setfield $tiddler="$:/temp/search" text=""/>
<$action-setfield $tiddler="$:/config/AutoSave" text="no"/>
<$action-setfield $tiddler="$:/_new-image-button" tags="-$:/tags/TopLeftBar"/>
<$action-setfield $tiddler="$:/_new-ship-details-button" tags="-$:/tags/TopLeftBar"/>
<$action-setfield $tiddler="$:/_new-plane-details-button" tags="-$:/tags/TopLeftBar"/>
<$action-setfield $tiddler="$:/_button_to_top" tags="-$:/tags/PageTemplate"/>
<$action-setfield $tiddler="$:/plugins/tg/layout/configuration-button" tags="-$:/tags/TopRightBar"/>
<$action-setfield $tiddler="Batchmanipulator button" tags="-$:/tags/TopLeftBar"/>
<$action-setfield $tiddler="$:/themes/tiddlywiki/vanilla/metrics/storytop" text="15px"/>
<$action-setfield $tiddler="$:/view" text="zoomin"/>
Verberg knoppen en tabs
</$button>
<!-- Toon knoppen en tabs -->
<$button>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel" text="show"/>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import" text="show"/>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions" text="show"/>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="show"/>
<$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/save-wiki" text="show"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone" text="show"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here" text="show"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions" text="show"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit" text="show"/>
<$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info" text="show"/>
<$action-setfield $tiddler="$:/core/ui/SideBar/Open" tags="$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/core/ui/SideBar/Recent" tags="$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/core/ui/SideBar/Tools" tags="$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/core/ui/SideBar/More" tags="$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/_bestanden" tags="$:/tags/SideBar"/>
<$action-setfield $tiddler="$:/_slider-macro-appear" tags="-$:/tags/Macro"/>
<$action-setfield $tiddler="$:/_slider-macro-edit-appear" tags="$:/tags/Macro"/>
<$action-setfield $tiddler="$:/config/Plugins/Disabled/$:/plugins/tg/toolbar" text="no"/>
<$action-setfield $tiddler="$:/config/Plugins/Disabled/$:/plugins/wikilabs/link-to-tabs" text="no"/>
<$action-setfield $tiddler="$:/publish-styles" tags="-$:/tags/Stylesheet"/>
<$action-setfield $tiddler="$:/DefaultTiddlers" text="[[Over deze wiki]] [[Nieuw toegevoegd]] [[$:/__bij_publicatie]]"/>
<$action-setfield $tiddler="$:/publish-button" tags="$:/tags/TopRightBar"/>
<$action-setfield $tiddler="$:/state/sidebar" text="yes"/>
<$action-setfield $tiddler="$:/config/AutoSave" text="yes"/>
<$action-setfield $tiddler="$:/_new-image-button" tags="$:/tags/TopLeftBar"/>
<$action-setfield $tiddler="$:/_new-ship-details-button" tags="$:/tags/TopLeftBar"/>
<$action-setfield $tiddler="$:/_new-plane-details-button" tags="$:/tags/TopLeftBar"/>
<$action-setfield $tiddler="$:/_button_to_top" tags="$:/tags/PageTemplate"/>
<$action-setfield $tiddler="$:/plugins/tg/layout/configuration-button" tags="$:/tags/TopRightBar"/>
<$action-setfield $tiddler="Batchmanipulator button" tags="$:/tags/TopLeftBar"/>
<$action-setfield $tiddler="$:/themes/tiddlywiki/vanilla/metrics/storytop" text="50px"/>
<$action-setfield $tiddler="$:/view" text="classic"/>
Toon knoppen en tabs
</$button>
{{$:/core/ui/Buttons/save-wiki}}
<$button class="tc-btn-invisible" tooltip="Publish">
<$action-sendmessage $message="tm-open-window" $param="$:/publish" width="230px" height="160px"/>
{{$:/publish-image}}
</$button>
<svg class="tgc-publish-sro tc-image-button" width="22pt" height="22pt" viewBox="0 0 486 438">
<style>
.ro{
fill:none;
stroke-width:40;
stroke:#FF0000;
}
</style>
<path class="ro" d="m203.2 81.6l-141.6 0 0 311.7 313.3 0 0-139.5"/>
<path class="ro" d="m176.4 279.6l0-60 188-188 60.5 60.5 -189.5 189.5 -59 0"/>
<path class="ro" d="m326.9 69l61.1 61.1"/>
</svg>
/* Hide sidebar icon */
svg.tc-image-chevron-right,
svg.tc-image-chevron-left {
display: none;
}
/* Hide advanced search button */
.tc-image-advanced-search-button.tc-image-button {
padding-left: 15px;
}
technisch interessante zaken
$:/core/ui/AdvancedSearch/Standard
Marinevliegkamp De Mok_info
Historie elektrische auto's
Marinevliegkamp Veere_info
Algemene informatie watervliegtuigen
Marinevliegkamp & luchthaven Schellingwoude_info
Ontstaan van deze databank
Informatie historische watervliegtuigen
Alle foto's van watervliegtuigen
Gemilitariseerde Gouvernements Marine
Alle foto's van marineschepen
Marinevliegkamp Souburg_info
Marinevliegkamp De Kooy_info
Marinevliegkamp & luchthaven Schellingwoude
$:/core/ui/MoreSideBar/System
{
"tiddlers": {
"$:/info/browser": {
"title": "$:/info/browser",
"text": "yes"
},
"$:/info/node": {
"title": "$:/info/node",
"text": "no"
},
"$:/info/url/full": {
"title": "$:/info/url/full",
"text": "file:///home/ton/stack/Downloads/TW_Amsterdam/Techniek.html"
},
"$:/info/url/host": {
"title": "$:/info/url/host",
"text": ""
},
"$:/info/url/hostname": {
"title": "$:/info/url/hostname",
"text": ""
},
"$:/info/url/protocol": {
"title": "$:/info/url/protocol",
"text": "file:"
},
"$:/info/url/port": {
"title": "$:/info/url/port",
"text": ""
},
"$:/info/url/pathname": {
"title": "$:/info/url/pathname",
"text": "/home/ton/stack/Downloads/TW_Amsterdam/Techniek.html"
},
"$:/info/url/search": {
"title": "$:/info/url/search",
"text": ""
},
"$:/info/url/origin": {
"title": "$:/info/url/origin",
"text": "null"
},
"$:/info/browser/screen/width": {
"title": "$:/info/browser/screen/width",
"text": "1920"
},
"$:/info/browser/screen/height": {
"title": "$:/info/browser/screen/height",
"text": "1080"
},
"$:/info/browser/language": {
"title": "$:/info/browser/language",
"text": "en-US"
}
}
}
{
"tiddlers": {
"$:/themes/tg/emphasized/icon": {
"created": "20170501180851393",
"creator": "TonGerner",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 100 100\">\n<path fill=\"#a0a0ff\" stroke=\"#a0a0ff\" stroke-width=\"1.2218\" stroke-miterlimit=\"4\" d=\"m48.98237,97.86909l-41.98313,-24.239l0,-48.47796l41.98313,-24.23897l41.98313,24.23897l0,48.47796l-41.98313,24.239z\" id=\"path4142\"/>\n <text stroke=\"#000000\" transform=\"matrix(2.383807688723323,0,0,2.736503389179191,-67.27737687713997,-73.27568926085192) \" xml:space=\"preserve\" text-anchor=\"middle\" font-family=\"Sans-serif\" font-size=\"24\" id=\"svg_1\" y=\"53.24726\" x=\"48.79004\" stroke-width=\"0\" fill=\"#000000\">E</text>\n</svg>",
"title": "$:/themes/tg/emphasized/icon",
"tags": "",
"modifier": "TonGerner",
"modified": "20191228111620441"
},
"$:/themes/tg/emphasized/license": {
"created": "20180119142722599",
"creator": "TonGerner",
"text": "[[Emphasized theme|http://tongerner.tiddlyspot.com/#Emphasized%20theme]] © Ton Gerner — 2018-2020\n\nMIT License: https://opensource.org/licenses/MIT",
"title": "$:/themes/tg/emphasized/license",
"tags": "",
"modifier": "TonGerner",
"modified": "20191228111636705"
},
"$:/themes/tg/emphasized/readme": {
"created": "20170501180836279",
"creator": "TonGerner",
"text": "A theme that emphasizes Titles.\n\n<<<\n''Note:''\n\n* My former Bluish theme contained font families and all colors (it was made a long time ago, before the palette was introduced).\n* The former Bluish theme has been divided now in the 'Emphasized' theme and the 'Bluish' palette (separate available).\n<<<",
"title": "$:/themes/tg/emphasized/readme",
"tags": "",
"modifier": "TonGerner",
"modified": "20191228111706724"
},
"$:/themes/tg/emphasized/styles": {
"created": "20170501180648530",
"creator": "TonGerner",
"text": "\\define tversion(theme)\n<$list filter=\"[has[version]]+[prefix[$:/themes/tg/$theme$]]\"><$view field=\"version\"/>\n\\end\n\n<pre>/* ============ Emphasized theme v<<tversion \"emphasized\">> ============= */\n\n/* FONTS */\nbody.tc-body {\n font-family: Verdana, Geneva, \"DejaVu Sans\", sans-serif;\n}\n\ncode, kbd, pre, samp {\n font-family: Inconsolata, Consolas, monospace, serif;\n font-size: 1.1em;\n}\n\ntextarea, input[type=\"text\"], input[type=\"search\"], input[type=\"\"], input:not([type]) {\n font-family: Inconsolata, Consolas, monospace, serif;\n font-size: 1.3em;\n}\n\ntextarea.tc-edit-texteditor {\n font-family: Inconsolata, Consolas, monospace, serif;\n font-size: 1.3em;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n font-family_: Inconsolata, Consolas, monospace, serif;\n}\n\n/* GENERAL STYLES */\n/* body prefix required! */\nbody.tc-body {\n color: <<colour \"foreground\">>;\n background-color: <<colour \"page-background\">>;\n}\n\n/* EDIT MODE STYLES */\ntextarea.tc-edit-texteditor, code, kbd, pre, samp {\n font-size: 1em;\n}\n\ntextarea, input [type=\"text\"] {\n color: <<colour \"foreground\">>;\n}\n\ninput.tc-titlebar.tc-edit-texteditor {\n color: <<colour \"foreground\">>;\n}\n\n/* font-size title in edit mode */\ninput.tc-edit-texteditor {\n font-size: 1.5em;\n}\n\n/* font-size 'add tag' */\n.tc-edit-add-tag .tc-add-tag-name input {\n font-size: 1.0em;\n width: 50%;\n}\n\n/* font-size 'add field' & 'value' */\n.tc-edit-field-add-name input.tc-edit-texteditor{\n font-size: 1.0em;\n}\n.tc-edit-field-add-value input.tc-edit-texteditor{\n font-size: 1.0em;\n}\n\n/* TIDDLER FRAME STYLES */\n\n@media screen {\n .tc-tiddler-frame {\n border-radius: 1em;\n -moz-border-radius: 1em;\n -webkit-border-radius: 1em;\n <<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n }\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n .tc-tiddler-frame {\n <<box-shadow none>>\n }\n}\n\n/* TITLE STYLES */\n.tc-site-title, .tc-titlebar {\n font-size: 2em;\n font-weight: bold;\n color: <<colour \"foreground\">>;\n text-shadow: 2px 2px 4px <<colour \"very-muted-foreground\">>;\n border-bottom: 2px solid <<colour \"tiddler-controls-foreground\">>;\n margin-bottom: 0.4em;\n padding-bottom: 11px;\n}\n\n.tc-titlebar {\n font-size: 1.9em;\n padding-top: 2px;\n}\n\n.tc-site-title {\n padding-bottom: 14px;\n}\n\n/* HEADING STYLES */\nh1, h2, h3, h4, h5, h6 {\n line-height: 1em;\n}\n\nh1 {\n font-size: 1.3em;\n font-weight: 700;\n}\n\nh2 {\n font-size: 1.2em;\n font-weight: 700;\n margin-bottom:-.2em;\n margin-top:1.2em;\n}\n\nh3 {\n font-size: 1.1em;\n font-weight: 700;\n margin-bottom:-.4em;\n margin-top:1.4em;\n}\n\nh4 {\n font-size: 1.0em;\n font-variant:small-caps;\n font-weight: 700;\n margin-bottom:-.6em;\n margin-top:1.6em;\n}\n\n.tc-sidebar-header {\n text-shadow: none;\n}\n\n/* LINK STYLES */\nbutton.tc-tiddlylink, a.tc-tiddlylink {\n color: <<colour \"tiddler-link-foreground\">>;\n font-weight: normal;\n}\n\na.tc-tiddlylink:hover {\n color: <<colour foreground>>;\n background-color: <<colour muted-foreground>>;\n text-decoration: underline;\n}\n\n/* MISSING TIDDLER LINK */\na.tc-tiddlylink-missing {\n color: #FF0000;\n}\n\n/* SHADOW TIDDLER LINK */\na.tc-tiddlylink-shadow {\n font-weight: bold;\n}\n\n/* OVERRIDDEN SHADOW TIDDLER LINK */\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n font-weight: bold;\n color: #884411;\n}\n\n/* TABS*/\n\n.tc-tab-buttons {\n margin-bottom: -1px;\n}\n\n.tc-tab-buttons button {\n color: <<colour \"tab-foreground\">>;\n background-color: <<colour \"tab-background\">>;\n border: 1px solid <<colour \"tab-background-selected\">>;\n border-radius: 0.3em;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n font-weight: bold;\n color: <<colour \"tab-foreground\">>;\n background-color: <<colour \"tab-background-selected\">>;\n border: 1px solid <<colour \"tab-border-selected\">>;\n border-radius: 0.3em;\n}\n\n/* SIDEBAR TABS */\n.tc-sidebar-lists .tc-tab-buttons button {\n color: <<colour \"tab-foreground\">>;\n background-color: <<colour \"tab-background\">>;\n border: 1px solid <<colour \"tab-background-selected\">>;\n border-radius: 0.3em;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n font-weight: bold;\n color: <<colour \"tab-foreground\">>;\n background-color: <<colour \"tab-background-selected\">>;\n border: 1px solid <<colour \"tab-border-selected\">>;\n border-radius: 0.3em;\n}\n\n/* SIDEBAR 'More' TABS */\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n background-image: none;\n background-color: <<colour \"tab-background\">>;\n border: 1px solid <<colour \"tab-background-selected\">>;\n}\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n background-image: none;\n background-color: <<colour \"tab-background-selected\">>;\n border: 1px solid <<colour \"tab-border-selected\">>;\n}\n\n/* TAB DIVIDER */\n.tc-sidebar-lists .tc-tab-divider {\n border-top: 1px solid <<colour \"tab-background-selected\">>;\n}\n\n/* TIDDLER INFO TABS */\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n font-weight: bold;\n background-color: <<colour \"tab-background-selected\">>;\n}\n\n/* SIDEBAR STYLES */\n/* subtitle, date recent tiddlers, search heading + count, tag count, TW version */\n.tc-sidebar-header {\n color: <<colour \"sidebar-foreground\">>;\n}\n\n/* entries (links) in Sidebar tabs + X to close search */\n.tc-sidebar-lists a.tc-tiddlylink {\n color: <<colour \"sidebar-tiddler-link-foreground\">>;\n fill: <<colour \"sidebar-tiddler-link-foreground\">>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n color: <<colour \"sidebar-tiddler-link-foreground-hover\">>;\n fill: <<colour \"sidebar-tiddler-link-foreground-hover\">>;\n}\n\n/* SIDEBAR: MISSING TIDDLERS */\n.tc-sidebar-header .tc-missing-tiddler-label {\n color: #FF0000;\n}\n\n/* BROWN OVERWRITTEN SHADOW TIDDLERS */\n.tc-sidebar-lists a.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n font-weight: bold;\n color: #884411;\n}\n\n/* search entries */\n.tc-sidebar-lists input {\n color: <<colour \"foreground\">>;\n}\n\n/* ====== GENERAL HTML BUTTON STYLE ====== */\nbutton, optgroup, select {\n <<background-linear-gradient \"#FFFFFF,#E8EEF9\">>\npadding: 2px 4px;\n border-radius: 0.3em;\n border: 1px solid <<colour muted-foreground>>\n}\n\n/* ====== SIDEBAR ====== */\n/* PAGE CONTROLS BUTTON STYLES */\n.tc-page-controls svg {\n fill: <<colour \"sidebar-controls-foreground\">>;\n}\n\n.tc-page-controls button:hover svg,\n.tc-page-controls a:hover svg {\n fill: <<colour \"sidebar-controls-foreground-hover\">>;\n}\n\n/* SIDEBAR OPEN 'x' & 'close all' STYLE */\n.tc-sidebar-lists button.tc-btn-mini {\n color: <<colour \"sidebar-muted-foreground\">>;\n font-weight: bold;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n fill: <<colour \"sidebar-muted-foreground-hover\">>;\n font-weight: bold;\n}\n\n/* ====== TIDDLER ====== */\n/* TIDDLER CONTROLS BUTTON STYLE */\n/* html prefix required!! */\nhtml .tc-tiddler-controls svg {\n fill: <<colour \"tiddler-controls-foreground\">>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg {\n fill: <<colour \"tiddler-controls-foreground-hover\">>;\n}\n\n/* MORE DROPDOWN STYLE */\n.tc-tiddler-controls .tc-drop-down a,\n.tc-tiddler-controls .tc-drop-down button {\n font-size: 0.9em;\n font-weight: normal;\n}\n\n/* ====== MICELLANEOUS ====== */\n/* SIZE OF BUTTON IMAGES IN DOCUMENTATION */\n.tc-image-button {\n height: 1.1em;\n}\n\n/* DROPDOWN STYLES (from SnowWite) */\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n/* TAG STYLES */\n/* DEFAULT COLOR TAG PILLS */\nbutton.tc-tag-label, span.tc-tag-label {\n background-color: <<colour \"tag-background\">>;\n}\n\n/* TAGS DROPDOWN LISTS */\n.tc-tag-list-item .tc-drop-down a,\n.tc-drop-down button,\n.tc-sidebar-lists .tc-drop-down a,\n.tc-sidebar-lists .tc-drop-down button {\n color: <<colour \"foreground\">>;\n font-size: 1.0em;\n}\n\n.tc-tag-list-item .tc-drop-down a:hover,\n.tc-sidebar-lists .tc-drop-down a:hover {\n color: <<colour \"background\">>;\n}\n\n/* MESSAGE/NOTIFICATION STYLES (from SnowWhite) */\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n/* MESSAGE SHIFTED 30px TO THE LEFT */\n.tc-notification {\n right: 72px;\n background-color: #FFFFFF;\n}\n\n/* MISC STYLES */\n\n/* HORIZONTAL LINE */\nhr {\n color: #0044BB;\n}\n\n/* BLOCKQUOTE */\nblockquote {\n border-left: 5px solid <<colour \"muted-foreground\">>;\n}\n\n/* SLIDER */\nhtml .tgc-slider {\n color: <<colour \"primary\">>;\n font-weight: bold;\n}\n\n.tgc-slider:hover {\n color: <<colour \"foreground\">>;\n text-decoration: underline;\n}\n\n/* SLIDER TIDDLERS */\n.sliderBG {\n color: <<colour \"darkblue\">>;\n background-color: #E8EEF9;\n}\n\n/* OMIT SOLID BORDER-BOTTOM */\n.tc-keyboard .tc-titlebar {\n border-bottom-style: none;\n}\n\n/* SAVE NOTIFICATION SHIFTED LEFT */\n.tc-notification {\n right: 72px;\n background-color: <<colour \"background\">>;\n}\n\n/* REMOVE FRAME AROUND CLICKED BUTTON */\n/* only visible with Chrome & Opera */\n.tc-btn-invisible {\n outline:none;\n}\n\n\n",
"title": "$:/themes/tg/emphasized/styles",
"tags": "$:/tags/Stylesheet",
"modifier": "TonGerner",
"modified": "20200115151646626"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/snowwhite/base": {
"title": "$:/themes/tiddlywiki/snowwhite/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/vanilla/themetweaks": {
"title": "$:/themes/tiddlywiki/vanilla/themetweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
},
"$:/themes/tiddlywiki/vanilla/base": {
"title": "$:/themes/tiddlywiki/vanilla/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n \tcursor: pointer;\n\tcolor: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: text-bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-type-selector .tc-edit-typeeditor {\n\twidth: 20%;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n font-size: 0.8em;\n margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n padding: 2px 7px;\n font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n\nselect {\n color: <<colour select-tag-foreground>>;\n background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
"text": "15px"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
"text": "22px"
},
"$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
"text": "14px"
},
"$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
"text": "20px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storytop": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyright": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
"text": "686px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
"text": "960px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
"text": "350px"
},
"$:/themes/tiddlywiki/vanilla/options/stickytitles": {
"title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
"text": "no"
},
"$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
"title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
"text": "fixed-fluid"
},
"$:/themes/tiddlywiki/vanilla/options/codewrapping": {
"title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
"text": "pre-wrap"
},
"$:/themes/tiddlywiki/vanilla/reset": {
"title": "$:/themes/tiddlywiki/vanilla/reset",
"type": "text/plain",
"text": "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
"text": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\""
},
"$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
"text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
"text": "fixed"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
"text": "auto"
},
"$:/themes/tiddlywiki/vanilla/sticky": {
"title": "$:/themes/tiddlywiki/vanilla/sticky",
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
}
}
}
<$reveal state="$:/themes/tiddlywiki/vanilla/options/stickytitles" type="match" text="yes">
``
.tc-tiddler-title {
position: -webkit-sticky;
position: -moz-sticky;
position: -o-sticky;
position: -ms-sticky;
position: sticky;
top: ``{{$:/plugins/tg/layout_adjustment/styles!!top-sticky-title}}``;
background: ``<<colour tiddler-background>>``;
z-index: 500;
}
.tc-editor-toolbar {
position: -webkit-sticky;
position: -moz-sticky;
position: -o-sticky;
position: -ms-sticky;
position: sticky;
top: ``{{$:/plugins/tg/layout_adjustment/styles!!top-sticky-editor-toolbar}}``;
background: ``<<colour tiddler-background>>``;
z-index: 500;
}
``
</$reveal>
|12 Consolidated PBY-5A amfibievliegboten|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|P-211, 16-211| 25-9-1951 | 24-6-1954 |uit dump USA; verongelukt in Libanon|
|P-212, 16-212| 22-2-1951 | 8-7-1957 |uit dump USA; in Ned. gevlogen; Bosbad Hoeven, Nationaal Militair Museum Zeist|
|P-213, 16-213| 1951 | 28-10-1952 |uit dump USA; verongelukt, Biak|
|P-214, 16-214| 3-4-1951 | 8-1956 |uit dump USA; gesloopt na ongeval Boroekoe, MVK Biak|
|P-215, 16-215| 12-1951 | 8-1956 |uit dump USA; gesloopt MVK Biak|
|P-216, 16-216| 5-7-1951 | 13-5-1958 |uit dump USA; in Ned. gevlogen; gesloopt MVK De Kooy|
|P-220, 16-220| 19-2-1954 | 21-8-1956 |geschonken door RAAF; gesloopt MVK Biak|
|P-221, 16-221| 23-7-1954 | 12-8-1956 |geschonken door RAAF; gesloopt MVK Biak|
|P-222, 16-222| 1-8-1954 | 12-8-1956 |geschonken door RAAF; gesloopt MVK Biak|
|P-223| - | 15-4-1954 |geschonken door RAAF; nooit in dienst, reserveonderdelen|
|P-224, 16-224| 2-2-1954 | 1-7-1957 |geschonken door RAAF; gesloopt MVK Biak|
|P-225, 16-225| 8-12-1954 | 28-8-1956 |geschonken door RAAF; gesloopt MVK Biak|
|12 Consolidated PBY-5A amfibievliegboten Y-74 t/m Y-85 |<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|Y-74| 2-9-1942 | ? |squadron 321 (Ceylon)|
|Y-75| 1942 | ? |gezonken bij aankomst China Bay, gelicht en omgebouwd tot passagierskist genaamd Sky Sleeper|
|Y-76, P-76| 9-9-1942 | 28-1-1952 |squadron 321 (Ceylon), Nederlands-Indië en Nederlands Nieuw Guinea; gesloopt MVK Biak|
|Y-77, P-77| 13-9-1942 | 11-1-1952 |squadron 321 (Ceylon), Nederlands-Indië en Nederlands Nieuw Guinea; gesloopt MVK Biak|
|Y-78| 16-9-1942 | 7-12-1943 |squadron 321 (Ceylon), verloren gegaan in zee bij Elephant Point (Ceylon)|
|Y-79, P-79, P-217| 13-9-1942 | 12-8-1957 |squadron 321 (Ceylon), Nederlands-Indië en Nederlands Nieuw Guinea; MLD Monument MVK Biak; gesloopt|
|Y-80| 22-9-1942 | 1945 |squadron 321 (Ceylon); gesloopt in India|
|Y-81| 23-9-1942 | 26-3-1943 |squadron 321 (Ceylon); vernield te Somaliland bij hangarbrand|
|Y-82, P-82| 26-9-1942 | 28-12-1950 |squadron 321 (Ceylon), Nederlands-Indië en Nederlands Nieuw Guinea; verongelukt bij Seroei|
|Y-83, P-83, P-218| 27-9-1942 | 15-6-1957 |squadron 321 (Ceylon), Nederlands-Indië en Nederlands Nieuw Guinea; gesloopt MVK Biak|
|Y-84| 30-9-1942 | 25-8-1943 |squadron 321 (Ceylon); noodlanding Kaap Agulhas (Zuid-Afrika)|
|Y-85, P-85, P-219| 20-11-1942 | 30-10-1954 |squadron 321 (Ceylon), Nederlands-Indië en Nederlands Nieuw Guinea; verbrand MVK Biak|
|2 Consolidated PBY-5 mk.1 vliegboten|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|P-200, 16-200| 17-9-1946 | 14-2-1952 |gekocht van de RCAF; Nederlands-Indie en Nederlands Nieuw Guinea; gesloopt MVK Biak|
|P-204, 16-204| 26-12-1946 | 26-1-1947 |gekocht van de RCAF; Nederlands-Indie en Nederlands Nieuw Guinea; verongelukt bij Gili Manoek op Bali en afgeschreven|
<<tabs "[tag[2017]]" "" "" "tc-vertical">>
!!! @@.BROWN Oktober 2017@@
!!! @@.BROWN Algemeen@@
Eerste versie van deze wiki (als afsplitsing van de [ext[Hugo de Grootbuurt|Amsterdam_1822-heden.html]] wiki).<br>
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Nieuw'' (tenminste hier nieuw):
** [[Marineschepen]]
** [[Walvisvaart]]
** [[Watervliegtuigen]]
* ''Aanvullingen'' (t.o.v. septemberversie Hugo de Grootbuurt wiki):
** [[Marineschepen]]
** [[Watervliegtuigen]]
!!! @@.BROWN November 2017@@
!!! @@.BROWN Algemeen@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Nieuw'' (tenminste hier nieuw):
** [[Elektrische auto's]] (overgenomen uit [ext[Hugo de Grootbuurt|Amsterdam_1822-heden.html]])
* ''Aanvullingen'':
** [[Marineschepen]]
** [[Watervliegtuigen]]
** [[Elektrische auto's]] (o.a. [[Woods hybride|Woods]])
<<tabs "[tag[2018]]" "" "" "tc-vertical">>
!!! @@.BROWN Maart 2018@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Nieuw'':
** Marineschepen uit de periode [[1950 tot heden|Scheepsklassen 1950 - heden]].
* ''Aanvullingen''<div>
Zo veel dat er nauwelijks een lijst te geven is.</div>
** Veel aanvullingen voor marineschepen uit de periode tot 1950.
!!! @@.BROWN April 2018@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen''
** Veel aanvullingen in marineschepen.
!!! @@.BROWN Mei 2018@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen''
** Watervliegtuigen
*** Martin Mariner PBM-5, Supermarine Sea Otter, Hughes H-4 Herculus, Kawanishi H8K2, ...
*** Nederlandse roundels 1914 - heden
*** Info omtrent Dornier Wal, Dornier Do24K, Catalina, ...
*** Vliegkampen
** Marineschepen
*** Vlaggebruik Koninklijke Marine
!!! @@.BROWN Juni 2018@@
!!! @@.BROWN Algemeen@@
Slechts hier en daar wat kleine aanpassingen.
!!! @@.BROWN Juli 2018@@
!!! @@.BROWN Algemeen@@
Weergave van lijsten 'Schepen volgens pennantnummer' geautomatiseerd (dit is echter niet mogelijk voor 'Ondersteuningsvaartuigen').
!!! @@.BROWN Augustus 2018@@
!!! @@.BROWN Algemeen@@
Twee knoppen aan bovenmenu toegevoegd ({{$:/_new_plane_icon}} & {{$:/_new_ship_icon}}) die een willekeurige vliegtuig- of scheepsfoto tonen.<br>Data en foto's toegevoegd.
!!! @@.BROWN September 2018@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Nieuw''
** Lijst met pennantnummers voor hulpschepen (''Y''xyz & ''Y''abcd)
* ''Aanvullingen''
** Lijst met pennantnummers voor hulpschepen (''A''xyz)
!!! @@.BROWN Oktober 2018@@
!!! @@.BROWN Algemeen@@
Slechts hier en daar wat kleine aanpassingen.
!!! @@.BROWN November 2018@@
!!! @@.BROWN Algemeen@@
Slechts hier en daar wat kleine aanpassingen.
<<tabs "[tag[2019]]" "" "" "tc-vertical">>
!!! @@.BROWN Januari 2019@@
!!! @@.BROWN Algemeen@@
* Opgewaardeerd naar ~TiddlyWiki v5.1.19
* Marges toegevoegd voor portret modus op b.v. iPad
* Geen toevoegingen deze maand.
!!! @@.BROWN Oktober 2019@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen:''
** Scheepsdata
** Scheepsfoto's
** Vliegtuigdata
** Vliegtuigfoto's
!!! @@.BROWN November 2019@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen:''
** Vliegtuigdata
** Vliegtuigfoto's
!!! @@.BROWN Maart 2019@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen:''
** Een aantal scheepsfoto's
!!! @@.BROWN April 2019@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen:''
** Een aantal nieuwe schepen
** Een aantal scheepsfoto's
!!! @@.BROWN April 2019@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen:''
** Veel nieuwe schepen:
*** Hulpmijnenvegers (veelal gevorderde trawlers)
*** Torpedomotorboten
*** Schepen van de gemilitariseerde Gouvernements Marine (Nederlands-Indië)
** Scheepsfoto's
!!! @@.BROWN Juni 2019@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen:''
** Veel nieuwe watervliegtuigen:
*** o.a. door MLD geïnterneerde Duitse en Britse watervliegtuigen (WWI)
** Vliegtuigfoto's
!!! @@.BROWN Juli 2019@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen:''
** Scheepsfoto's
** Vliegtuigfoto's
!!! @@.BROWN Augustus 2019@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen:''
** Scheepsdata
** Scheepsfoto's
!!! @@.BROWN September 2019@@
!!! @@.BROWN Onderwerpen in informatieblokken@@
* ''Aanvullingen:''
** Scheepsdata
** Scheepsfoto's
<<tabs "[tag[2020]!sort[created]]" "" "" "tc-vertical">>
Het 321 (Dutch) Squadron RAF was een maritiem squadron dat op 1 juni 1940 te Pembroke Dock werd opgericht als onderdeel van de Royal Air Force met personeel van de Marine Luchtvaart Dienst dat uit Nederland was ontkomen. Door een tekort aan personeel werd het squadron ontbonden en op 18 januari 1941 toegevoegd aan het 320 Dutch Squadron RAF.<br>
Het squadron werd op 15 augustus 1942 te Trincomalee, Ceylon, heropgericht met personeel van de Marine Luchtvaart Dienst die gedurende de Japanse invasie vanuit Nederlands-Indië naar Ceylon ontkomen was. China Bay op Ceylon zou gedurende de hele Tweede Wereldoorlog de thuisbasis van het squadron blijven, met diverse detachementen in Afrika, India en de Cocoseilanden.<br>Het squadron werd op 8 december 1945 te Batavia door de R.A.F. overgedragen aan de Marine Luchtvaart Dienst en behield haar nummer No. 321 Squadron MLD tot haar opheffing in 2005.
|38 Consolidated PBY-5 vliegboten Y-38 t/m Y-73 |<|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|Y-38| 3-9-1941 | 9-2-1942 |noodlanding Westervaarwater, later gezonken|
|Y-39| 3-9-1941 | ? |lestoestel te Morokrembangan; mogelijk door eigen mensen vernield|
|Y-40| 11-9-1941 | 3-2-1942 |tijdens instructievlucht neergeschoten|
|Y-41| 11-9-1941 | ? |vliegschool Morokrembangan; tijdens konvooibeschermingsvluchten mogelijk verloren gegaan|
|Y-42| 11-9-1941? | ? |is tijdens konvooibeschermingsvluchten mogelijk verloren gegaan<br>Uit restanten van een MLD Cat. (Y-42?) en de USN 22-P- 12 is de USN P-46 opgebouwd. In dienst 28-02-1942 ?, uitgeweken naar Australië. ??|
|Y-43| 23-9-1941 ||is tijdens Japanse aanvallen vernield|
|Y-44| 23-9-1941 | 5-12-1941 |verongelukte bij Tandjong Pandanop|
|Y-45| 23-09-1941 | 25-12-1945 |week uit naar Australië => squadron 321 (Ceylon). daar gesloopt|
|Y-46| 8-10-1941 | 07-12-1941 |raakte na start op Priok onherstelbaar beschadigd|
|Y-47| 8-10-1941 | 23-2-1942 |verongelukt bij MVK Pontianak / Priok ? en verbrand|
|Y-48| 8-10-1941 | 3-3-1942 |MVK Pontianak; door eigen personeel vernield|
|Y-49| 12-10-1941 | 12-1943 |beschadigd Madras ?|
|Y-50| 16-1-1942 | 2-1942 |tijdens Japanse aanvallen vernield|
|Y-51| 12-10-1941 | 21-1-1942 |tijdens verkenningsvlucht gezonken in Barito rivier na beschieting door Japanse toestellen|
|Y-52| 16-10-1941 | 4-12-1941 |15-10-1942 RAF Singapore|
|Y-53| 16-10-1941 | 4-12-1941 |15-10-1942 RAF Singapore|
|Y-54| 16-10-1941 | 4-12-1941 |15-10-1942 RAF Singapore|
|Y-55, C| 3-11-1941 | 5-1944 |week uit naar Koggala op Ceylon, squadron 321 (Ceylon); daar gesloopt|
|Y-56, D| 3-11-1941 | 2-1945 |week uit naar Koggala op Ceylon, squadron 321 (Ceylon); daar gesloopt|
|Y-57, E| 3-11-1941 | 12-1945 |week uit naar Koggala op Ceylon, squadron 321 (Ceylon of Australië?); gesloopt te MVK Morokrembangan|
|Y-58| 3-11-1941 | 11-1-1942 |ging gedurende het bombardement van de Japanse landingsvloot nabij Kema verloren|
|Y-59| 9-11-1941 | 3-3-1942 |week uit naar Australië; bij Japanse aanval op Broome verloren gegaan|
|Y-60| ? | 3-3-1942 |week uit naar Australië; bij Japanse aanval op Broome verloren gegaan|
|Y-61| 9-11-1941 | 3-2-1942 |tijdens Japanse aanvallen op MVK Morokrembangan vernield|
|Y-62, F| 15-11-1941 | 23-10-1945 |dienst bij squadron 321 (Ceylon); afgeschreven MVK Biak na landingsongeval|
|Y-63| 15-11-1941 | 27-2-1942 |tijdens verkenningsvlucht neergeschoten bij Noordbroeder|
|Y-64, G| 15-11-1941 | 6-1945 |week uit naar Koggala op Ceylon; gesloopt te China Bay (Ceylon)?|
|Y-65| 2-12-1941 | 27-2-1942 |afgeschreven na luchtgevecht, Tjilatjap|
|Y-66| 2-12-1941 | 4-3-1942 |vernield bij bombardement Tjilatjap|
|Y-67| 2-12-1941 | 3-3-1942 |week uit naar Australië; bij Japanse aanval op Broome verloren gegaan|
|Y-68| 7-12-1941 | 7-12-1941 |verloren bij Japanse aanval op Pearl Harbor|
|Y-69, P-69| 2-1942 | 1947 |7-12-1941 geconfisqueerd door USA, feb 1942 naar Brisbane; lokale MLD vliegschol Rathmines|
|Y-70| 27-12-1941 | 3-3-1942 |week uit naar Australië; bij Japanse aanval op Broome verloren gegaan|
|Y-71| 08-01-1942 | 8-11-1942 |week uit naar Australië; noodlanding Lake Bangalore|
|Y-72| 16-1-1942 | 5-2-1942 |neergeschoten bij Waroe?|
|Y-73| 16-1-1942 | 5-2-1942? |mogelijk door Japanse aanvallen verloren gegaan|
|Y-86, P-86 , 16-86| 16-4-1943 | 08-01-1949 |gesloopt op MVK Biak|
|Y-87, P-87| 16-4-1943 | 13-10-1946 |verongelukt bij Woendi en afgeschreven|
|4 Boeing Canada PB2B-2 mk. VI vliegboten|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|P-207, 44-44266, 16-207| 24-8-1949 | 9-1950 |gekocht uit overtollige voorraad Australie; gesloopt MVK Morokrembangang|
|P-208, 44-44286, 16-208| 25-8-1949 | 9-1950 |gekocht uit overtollige voorraad Australie; gesloopt MVK Morokrembangang|
|P-209, 44-44293, 16-209| 25-8-1949 ||gekocht uit overtollige voorraad Australie; gesloopt MVK Morokrembangang|
|P-210, 44-44264, 16-210| 17-10-1949 | 9-1950 |gekocht uit overtollige voorraad Australie; gesloopt MVK Morokrembangang|
|5 Consolidated PBY-5 mk. IVA vliegboten|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|P-201, 16-201| 17-9-1946 | 1-11-1949 |gekocht van de RCAF; Nederlands-Indie en Nederlands Nieuw Guinea; gesloopt MVK Morokrembangan|
|P-202, 16-202| 17-9-1946 | 11-9-1950 |gekocht van de RCAF; Nederlands-Indie en Nederlands Nieuw Guinea; gesloopt MVK Morokrembangan|
|P-203, 16-203| 2-11-1946 | 5-10-1951 |gekocht van de RCAF; Nederlands-Indie en Nederlands Nieuw Guinea; gesloopt MVK Biak|
|P-205, 16-205| 14-12-1946 | 14-11-1951 |gesloopt op Biak i.v.m corrosie|
|P-206, 16-206| 24-12-1946 | 1950 |gekocht van de RCAF; Nederlands-Indie en Nederlands Nieuw Guinea; gesloopt MVK Morokrembangan|
|6 Boeing Canada PB2B-1 mk IV.B vliegboten gekocht|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|Y-88, P-99, 16-88| 1-11-1945 | 11-1-1949 |overgenomen van de RAF; afgeschreven en juli 1950 vernietigd op MVK Morokrembangan|
|Y-89, P-89, 16-89| 23-11-1945 | 10-2-1950 |overgenomen van de RAF; afgeschreven en juli 1950 vernietigd op MVK Morokrembangan|
|Y-90, P-90, 16-90| 10-12-1945 | 1-6-1949 |overgenomen van de RAF; afgeschreven en juli 1950 vernietigd op MVK Morokrembangan|
|Y-91, P-91, 16-91| 1-11-1945 | 1-8-1949 |overgenomen van de RAF; afgeschreven en juli 1950 vernietigd op MVK Morokrembangan|
|Y-92, P-92, 16-92| 12-12-1945 | 25-1-1950 |overgenomen van de RAF; afgeschreven en juli 1950 vernietigd op MVK Morokrembangan|
|Y-93, P-93, 16-93| 12-1945 | 5-11-1947 |overgenomen van de RAF; verbrand te Balikpapan bij brandstofladen|
|6 Boeing Canada PB2B-1 mk IV.B vliegboten in bruikleen|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|Y-88| 9-5-1944 | 4-2-1945 |tijdelijk in bruikleen van RAF; squadron 321 (Ceylon)|
|Y-89| 14-5-1944 | 4-2-1945 |tijdelijk in bruikleen van RAF; squadron 321 (Ceylon)|
|Y-90| 16-5-1944 | 4-2-1945 |tijdelijk in bruikleen van RAF; squadron 321 (Ceylon)|
|Y-91| 7-7-1944 | 4-2-1945 |tijdelijk in bruikleen van RAF; squadron 321 (Ceylon)|
|Y-92| 26-7-1944 | 1-11-1944 |tijdelijk in bruikleen van RAF; squadron 321 (Ceylon)|
|Y-93| 29-7-1944 | 1-11-1944 |tijdelijk in bruikleen van RAF; squadron 321 (Ceylon)|
Luchtverdedigings en Commando Fregat (LCF).
Het 860 squadron werd in Juni 1943 te Donibristle, Schotland opgericht met Nederlands marinepersoneel. Het verhuisde November 1943 naar Maydown, Noord-Ierland.<br>Als torpedo-bommenwerper / verkennings squadron werd gevlogen met Fairey Swordfish vliegtuigen vanaf o.a. de hulpvliegdekschepen Macoma en Gadila.<br>
In September 1946 werd het squadron aan Nederland overgedragen en werd onderdeel van de MLD.
{{||$:/_ship_template}}
* <<slider "Mijnenveger A 1930" Schepen082>>
Bron: [[dutchfleet|https://www.dutchfleet.nl/showthread.php/1132-Naamseinen-beginnend-met-een-9?highlight=zeefakkel]]
De NAVO-pennantnummers ''A800'' t/m ''A999'' werden eind 1950 aan Nederland toegekend.<br>
Dat wijzigde zich in 1953 toen dat t.b.v. België de reeks werd ingekort van ''A800'' t/m ''A949''. De Belgische sleepboot ''Sub-Lieutenant Valke'' kreeg in 1953 het naamsein ''A950''.<br>
Veel Nederlandse vaartuigen in de ''A900''-serie werden in 1953 ingedeeld in de ''Y8000''-serie.<br>
Schepen met nummers uit de weggevallen reeks A950- A999 werden hernummerd. B.v. de loodsafhaler ''Zilvermeeuw'' droeg tussen 1950-1953 de registratie ''A999'' en vanaf 1953 de registratie ''A935'' terwijl de munitielichter ''A935'' toen de registratie ''Y8507'' kreeg.
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
{{||$:/_ship_template}}
* <<slider "Mijnenveger Aalsmeer ca. 1960" Schepen219>>
Om een indruk te geven: in 1900 werden er in de VS door 109 fabrikanten 4192 auto's gemaakt:
* 1681 stoomauto's (relatief goedkoop)
* 1575 elektrische auto's (relatief duur, maar betrouwbaar)
* 936 benzineauto's
Rond 1900 moest de elektrische auto concurreren met stoom- en benzineauto's. Op dat tijdstip gold:
* Stoomauto's hadden het voordeel van de prijs (stoommachine uitontwikkeld) en het ontbreken van versnellingen, maar als nadelen: voorbereiding (op stoom brengen), brandstof, geur, vibraties en de actie-radius.
* Elektrische auto's waren stil, geurloos, vibratieloos en hadden ook geen versnellingen nodig, maar waren relatief duur.
* Benzineauto's waren niet stil, niet geurloos, vibreerden, hadden versnellingen nodig en moesten aangeslingerd worden. Ook de betrouwbaarheid liet te wensen over.
<<<
''N.B.'' De eerste handgeschakelde versnellingsbakken bewogen met een eenvoudig systeem de tandwielen rechtstreeks over spiegleuven in elkaar. Dit is een gecompliceerde manier van schakelen vanwege het dubbel ontkoppelen bij opschakelen en dubbel ontkoppelen met tussengas bij terugschakelen. Het wordt ook wel 'dubbel klutsen' genoemd, naar de Engelse term: double clutching.
<<<
Elektrische auto's waren uitermate geschikt voor stadsvervoer, zeker voor taxi's met de juiste infrastructuur voor laden van de accu's.<br>
Naarmate het wegennet beter werd, werd de actie-radius van groter belang. Dit werkte in het voordeel van benzineauto's. Tevens werd de benzine - zeker in de VS - veel goedkoper en de uitvinding van de startmotor in 1912 en de massaproduktie van Ford maakte benzineautos' betaalbaar ($ 500 - $ 1.000), terwijl de prijs van de minder efficiënt geproduceerde elektrische auto's alleen maar hoger werd. Als voorbeeld: in 1912 kostte een benzineauto in de VS $ 650.- en een vergelijkbare elektrische auto $ 1.750.-
Rond 1935 was het helemaal gedaan met elektrische auto's.
De zes schepen van de ABC-klasse (''Alor'', ''Aroe'', ''Bantam'', ''Bogor'', ''Ceram'' en ''Cheribon'') waren ontworpen als politiekruisers. Ze werden gebruikt voor visserij-inspectie, tegen smokkelaars en om personen en kleine hoeveelheden goederen te vervoeren tussen de vele eilanden van de Indonesische archipel.<br>Op 11 oktober 1939 werden de schepen gemilitariseerd en na de Duitse inval in Nederland, in mei 1940, omgebouwd tot hulpmijnenvegers.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Abcoude ca. 1970" Schepen356>>
{{||$:/_ship_template}}
* <<slider "Mijnenveger Abraham Crijnssen ca. 1941" Schepen168>>
In 1937 naar Nederlands-Indië gevaren en daar werd de registratie veranderd van ''C'' naar ''CR'' om verwarring met de mijnenveger [[C (1930)]] te voorkomen.<br>Op 6 maart 1942 van Soerabaja naar Australië uitgeweken en na een avontuurlijke reis, soms gecamoufleerd als eiland, op 15 maart te Geraldton aangekomen. Hier deed het schip tot 16 augustus 1942 dienst als patrouillevaartuig. Van 26 augustus 1942 tot 5 mei 1943 was de Abraham Crijnssen in dienst bij de Australische marine. Van de terugkeer in Nederlandse dienst tot 1945 deed het schip weer dienst als patrouillevaartuig.<br>
Na WWII werd de Abraham Crijnssen tot 1949 ingezet als patrouilleschip in Nederlands-Indië, van 1949 tot de onafhankelijkheid van Nederlands-Indië werd het schip weer actief als mijnenveger gebruikt. Na de onafhankelijkheid van Nederlands-Indië keerde het schip terug naar Nederland waar het in 1961 aan de zeecadetten in bruikleen gegeven.<br>
In 1995 werd besloten om de Abraham Crijnssen voor het nageslacht te bewaren; sinds 1997 is het als museumschip voor het publiek te bezichtigen in het Marinemuseum in Den Helder
{{||$:/_ship_template}}
* <<slider "Fregat Abraham Crijnssen 1996" Schepen184>>
Na de uitdienstname werd de Abraham Crijnssen verkocht aan de Verenigde Arabische Emiraten.<br>
Daar werd het op 31 oktober 1997 in dienst genomen als ''Abu Dhabi'' (F01).
{{||$:/_ship_template}}
* <<slider "Mijnenveger/mijnenlegger Abraham van der Hulst 1937" Schepen155>>
* <<slider "Mijnenveger/mijnenlegger Abraham van der Hulst 1938" Schepen013>>
De Abraham van der Hulst werd in 1940 in het Krabbersgat tot zinken gebracht.<br>
Daarna door de Duitsers gelicht en in dienst te worden genomen als M 553. In Duitse dienst werd het omgebouwd tot torpedotestschip. Op 21 april 1944 liep de M553 op een mijn bij Brüsterstort.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Abraham van der Hulst ca. 1948" Schepen357>>
Het schip werd gebouwd als vervanging voor de in 1939 verloren gegane Willem van Ewijck.<br>1940-1945 in Duitse dienst; in mei 1945 werd het schip teruggevonden en in Den Helder hersteld waarbij men het vermoeden had met de [[Abraham van der Hulst (1937)]] te maken te hebben i.p.v. de door de Duitsers afgebouwde Willem van Ewijck II. Daardoor werd het per abuis onder die naam in dienst gesteld.<br>
{{||$:/_ship_template}}
* <<slider "Fregat Abraham van der Hulst 1993" Schepen182>>
|borderless|k
|[img[Eerste model accu|Images/Plante_lead_acid_cell.jpg]]| |[img[Latere accu|Images/Leadacid_Plante_circa1860.jpg]]|
|//Een vroeg model accu.//||//Een accu met 9 cellen uit ca. 1860.//|
Als dienstperiode geldt de ''actieve'' Nederlandse dienst.
<<<
''N.B.:'' Voor gemilitariseerde schepen van de Gouvernementsmarine geldt gewoonlijk 1939 - 1942.
<<<
{{||$:/_ship_template}}
* <<slider "Doorsnedes monitoren ca. 1870" Schepen170>>
* <<slider "Zijaanzichtstekening rammonitor Adder" Schepen373>>
* <<slider "Rammonitor Adder" Schepen374>>
In 1882 op de Noordzee [[vergaan|https://nl.wikipedia.org/wiki/Zr.Ms._Adder_(1875)]].
!! Afkortingen
|Afkorting |Omschrijving |Extra info |h
|BDZ|Bevelhebber der Zeestrijdkrachten||
|BOZ|Bevoorrading Op Zee||
|CDS|Chef-DefensieStaf||
|~|Commandant der Strijdkrachten||
|CZM|Commandant der ~ZeeMacht||
|CZSK|Commando ~ZeeStrijdKrachten|De nieuwe naam van de vroegere BDZ en CZM samengevoegd;<br>het operationele commando van de KM|
|DHC|Defensie Helikopter Commando |MLD in 2008 opgegaan in DHC|
|HOV|Hydrografisch ~OpnemingsVaartuig||
|IDL|Instituut Defensie Leergangen|te Rijswijk|
|JSS|Joint (logistic) Support Ship||
|KIM|{{KIM}}|te Den Helder|
|KM|Koninklijke Marine||
|KMA|Koninklijke Militaire Academie|te Breda|
|KVD|Kleine Vaartuigen Dienst||
|LCF|Luchtverdedigings en Commando Fregat||
|LCU|Landing Craft Utility||
|LPD|Landing Platform Dock||
|LVA|Luchtvaartafdeling |De LVA was de voorloper van de Koninklijke Luchtmacht|
|MAC|Merchant Aircraft Carrier|omgebouwde koopvaardijschepen zoals [[Macoma (1944)]] en [[Gadila (1944)]]|
|MCTV|Militaire Commissie Teruggave Vaartuigen||
|MDAP|<<slider "Mutual Defense Aid Program" MDAP>>||
|MGB|{{MGB}}||
|MLD|Marine Luchtvaart Dienst |In 2008 opgegaan in DHC|
|ML-KNIL|Militaire Luchtvaart afdeling van het KNIL|kwam voort uit Proefvliegafdeeling KNIL (PVA-KNIL); in 1914 opgericht. Naamswijziging Luchtvaartafdeeling-KNIL (LA-KNIL) en vervolgens in ML-KNIL (zelfstandig wapen in 1939) |
|MOD|~MijnenOpsporingsDienst||
|MOV|~MarineOpleidingsVaartuig||
|MSD|~MarineSleepDienst||
|MTB|Motor Torpedo Boat||
|MTD|~MarineTransportDienst||
|MUD|~MijnenUitkijkDienst||
|MVD|~MijnenVeegDienst||
|MVK|~MarineVliegkamp||
|MVKV|~MarineVliegkamp Valkenburg||
|NIMH|Nederlands Instituut voor Militaire Historie|te Den Haag|
|NLDA|Nederlandse Defensie Academie|de nieuwe organisatorische samenvoeging van KIM, KMA, IDL en NIMH|
|NLF|Nieuw Luchtverdedigings Fregat||
|NLS|Nationale ~LuchtvaartSchool||
|OOV|Oceanografisch ~OnderzoeksVaartuig||
|OPV|Ocean Patrol Vessel<br>Oceangoing Patrol Vessel<br>Offshore Patrol Vessel||
|OSRD|~OpSporings- en ~ReddingsDienst van de Koninklijke Marine||
|OZB|{{OZB}}||
|RAAF|Royal Australian Air Force||
|RAF|Royal Air Force||
|RCAF|Royal Canadian Air Force||
|RIV|Rijks Instructie Vaartuig||
|TOKM|{{TOKM}}||
|TVB|~TorpedoVolgBoot||
|VSQ|~VliegtuigSQuadron||
|WWII|World War II, 2^^e^^ Wereldoorlog||
! [[Aircraft carrying ships]]
!! Light aircraft carriers
<br>
* [[Karel Doorman (1948)]] light aircraft carrier
!! Escort aircraft carriers
<br>
* ''Gadila'' merchant aircraft carriers (MAC-ships) (1935-1936/1944)
** [[Gadila (1944)]]
** [[Macoma (1944)]]
* [[Karel Doorman (1946)]] escort aircraft carrier
!! Seaplane tenders
<br>
* [[Poolster (1939)]] auxiliary seaplane tender (1939/1940) In service with the @@.h Gouvernements Marine@@ in 1939 as a buoy ship. Militarized in September, 1939, in service as seaplane tender.
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Albatros 1912" Schepen391>>
Werd in 1912 in dienst gesteld bij de {{GM}} en gestationeerd te Amboina op de Molukken. In 1939 aldaar gemilitariseerd.<br>
Op 8 februari 1942 kreeg de Albatros, samen met de Fomalhaut, opdracht om de vrouwen en kinderen van de bemanningsleden aan boord te nemen en zich via Koepang naar Java te begeven. Op het laatste traject werd een tanker van de KPM geëscorteerd. Op 2 maart 1942 werd de Albatros door de eigen bemanning aan de Endehkade in Soerabaja tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Alblas ca. 1970" Schepen358>>
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Aldebaran ca. 1928" Schepen392>>
{{NI}} Stationschip en schip voor algemene doeleinden in Soerabaja en vanaf 1925 in Makassar, Zuid-Celebes.<br>
Na militarisatie werd de Aldebaran, met al haar stabiliteitsproblemen, als logement- en wachtschip toegewezen aan station Soerabaja.<br>
Op 2 maart 1942 werd de Aldebaran door haar eigen bemanning tot zinken gebracht.
!! Algemene info
Bij het onderzoek naar het/de [[marinevliegkamp/luchthaven Schellingwoude|Marinevliegkamp & luchthaven Schellingwoude]] kwamen uiteraard watervliegtuigen en vliegboten aan de orde.<br>
Pas later realiseerde ik mij dat, vanwege de <<popup "grote te overbruggen afstanden" Europa-Indie>>, dit soort vliegtuigen van zeer groot belang waren in toenmalig Nederlands-Indië.<br>
In 1917 werd de [[Marine Luchtvaart Dienst (MLD)|Marine Luchtvaart Dienst]] opgericht. Het zwaartepunt van de MLD lag onbetwist in Nederlands-Indië.
<<<
De nadruk ligt op de in Nederland en Nederlands-Indie gebruikte watervliegtuigen van de MLD. Voor de rest is het meer 'tegengekomen' (b.v. Schellingwoude) en interessante watervliegtuigen (b.v. grootste vliegboot).
<<<
Aanvankelijk werd de MLD vooral voorzien van Nederlandse vliegtuigen van:
* <<popup "Van Berkel" "Van Berkel">>
* <<popup Fokker Fokker>>
* <<popup Koolhoven Koolhoven>> (lesvliegtuigen, ''geen'' watervliegtuigen, zie [[Andere MLD vliegtuigen|Merken landvliegtuigen]])
* <<popup Spyker Spyker>> (lesvliegtuigen, ''geen'' watervliegtuigen, zie [[Andere MLD vliegtuigen|Merken landvliegtuigen]]).
Vanaf 1926 deden ook buitenlandse types hun intrede.<br>
Hieronder de bekende <<popup "Dornier Wal" Vliegtuig026>> die vooral in Nederlands-Indië werd ingezet, vanaf vliegkamp Tandjong Priok (Java; vanaf 1919 in gebruik) en vliegkamp Morokrembangan (Soerabaja; vanaf 1926 in gebruik).
<<<
Vanwege haar uitgebreide en waterrijke koloniën, had de Nederlandse overheid al in een vroeg stadium het grote nut ingezien van vliegboten als hulpmiddel voor haar maritieme verkenningen. Als één van de eersten bestelde de Koninklijke Marine de fameuze Dornier Wal vliegboten. In 1934 werd het echter tijd om uit te gaan zien naar een opvolger. In eerste instantie had men hiervoor de Dornier Do 18 op het oog, deze werd echter te licht bevonden voor haar taak.<br>
Op verzoek van de Nederlandse overheid ontwierp Dornier een geheel nieuwe vliegboot, de Dornier Do 24. De Dornier moest de competitie aangaan met een ontwerp van Fokker en de Amerikaanse fabriek Sikorsky, maar won glansrijk.<br>
De <<popup "Dornier Do 24" Vliegtuig028>> zou uitgroeien tot een zeer goede en betrouwbare vliegboot die tijdens de oorlog zou vliegen voor Nederland, Duitsland, Australië, Spanje, Zweden en Frankrijk. Na de oorlog zouden de Franse en Spaanse marine nog lange tijd het toestel blijven gebruiken.
<<<
Vlak voor het uitbreken van de tweede wereldoorlog beschikte de MLD in Nederlands-Indië over:
* 34 vliegboten van het type <<popup "Dornier Do 24" Vliegtuig028>>
* 25 Consolidated <<popup "PBY Catalina" Vliegtuig093>> vliegboten
* 8 <<popup "Fokker C-XI W" Vliegtuig005>> drijvervliegtuigen voor de kruisers
* 10 verouderde <<popup "Fokker T-IVa’s" Vliegtuig017>>.
Het materieel was goed, maar in aantal onvoldoende om begin 1942 de invasie van een Japanse overmacht tegen te houden.
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Alkmaar 1892" Schepen281>>
* <<slider "Schroefstoomschip Alkmaar 1895" Schepen298>>
* <<slider "Schroefstoomschip Alkmaar 1895" Schepen301>>
* <<slider "Schroefstoomschip Alkmaar?" "Jacob Olie161">>
ex IJm 31 (1914)<br>Op 1 september 1939 gevorderd en omgebouwd tot hulpmijnenveger (hulpmijnenveger 3). Op 10 mei 1940 stoomde de Alkmaar, samen met andere schepen de Nieuwe Waterweg op om Duitse mitrailleurnesten op de Willemsbrug onder vuur te nemen. Na de Nederlandse capitulatie, op 14 mei 1940, viel het schip in Duitse handen en werd door hen als oorlogsbuit verklaard en in Duitse dienst gesteld als hulpmijnenveger M 3620. Na de oorlog werd het oude vissersschip overgedragen aan de Sovjets.
{{||$:/_ship_template}}
* <<slider "Mijnenjager Alkmaar ca. 1985" Schepen295>>
De Alkmaarklasse is een serie van 15 mijnenjagers waarvan er nu nog 6 in dienst zijn: ''Makkum'', ''Schiedam'', ''Urk'', ''Vlaardingen'', ''Willemstad'' en ''Zierikzee''.<br>
De Alkmaarklasse is het resultaat van verregaande samenwerking met de Belgische en Franse Marine in de jaren zeventig (z.g. tripartite mijnenjager).<br>
Nog tijdens de bouw werden 2 schepen aan Indonesië verkocht, waarna een 16e en 17e schip voor de Koninklijke Marine op stapel werden gezet.
<<list-links "[tag[Duikboot]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Escorteschip]sort[]]" "" "" "tgc-3columns">>
!! Alle marineschepen - chronologisch
<<tabs "[tag[scheepsfoto]] +[sort[jaar]]">>
!! Alle watervliegtuigen - chronologisch
<<tabs "[tag[vliegtuigfoto]] +[sort[jaar]]">>
<<list-links "[tag[Fregat]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Kanonneerboot]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Korvet]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Kruiser]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Mijnenjager]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Mijnenlegger]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Mijnenveger]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Monitor]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Ondersteuningsschip]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Onderzeebootjager]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Pantserdekschip]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Pantserschip]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Patrouilleschip]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Ramtorenschip]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[schipdata]sort[]]-$:/_ship_details_template -$:/temp/search" "" "" "tgc-3columns">>
<<list-links "[tag[Schroefstoomschip]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Torpedobootjager]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Torpedoboot]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Torpedomotorboot]sort[]]" "" "" "tgc-3columns">>
<<list-links "[tag[Vliegdekschip]sort[]]" "" "" "tgc-3columns">>
ex IJM 44 (1915)<br>De trawler week in mei 1940 uit naar Engeland en werd in Falmouth verbouwd tot hulpmijnenveger en in juni in dienst gesteld. Nam deel aan veegoperaties in Britse wateren. Op 22 maart 1943 werd het schip uit dienst gesteld en aan de oorspronkelijke eigenaar teruggegeven.
{{||$:/_ship_template}}
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen421>>
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen431>>
De Alor werd in 1938 gestationeerd in Noord-Celebes. In mei 1940 werd de politiekruiser omgebouwd tot Hulpmijnenveger 2 (HMV2).<br>
De Alor werd op 2 maart 1942 door de eigen bemanning tot zinken gebracht in Tandjong Priok.
Australisch korvet/mijnenveger ''Cairns'' (J183). Vanaf 1946 bij Nederlandse marine. {{NI}}<br>
In 1950 naar Indonesische marine als ''Banteng''.
! [[Amphibious ships]]
!! Amphibious ships - landing craft carriers
# [[Rotterdam (1998)]] amphibious transport dock
# [[Johan de Witt (2007)]] amphibious transport dock
# [[Karel Doorman (2015)]] multipurpose ship
!! Amphibious ships, direct landing
# LST3010 tank landing ships (1945, 1945/1947)
#* LST3010, LST3035, LST3502
# LST3 tank landing ships (1944-1945/1946)
#* LST3 (ex-LST1040), LST4 (ex-LST585)
# [[Pelikaan (1948)]] tank landing ship (1943 / 1948) LST2, 1951- A830
!! Small landing ships
# LT110 small landing ships (1941 / 1946)
#* LT110-112
# LT1 small landing ships (1943 - 1945 / 1946-1952)
#* LT1-4
#* LT101-106
#* L9607-9608
# LT5 small landing ships (1944 / 1946)
#* L260 (ex-LCT7003), LCT7037, LCT7048, LCT7052, LCT7053, LCT7093, LCT7100, LCT345, LCT411, LCT456, LT5 (ex-LCT7031), LT6 (ex-LCT7033), LT7 (ex-LCT7118), LT8 (ex-LCT7121), LT9 (ex-LCT7122), LT10 (ex-LCT7125)
# L9609 small landing ship (1954/1960)
!! Landing craft
# LV101 landing craft (1942-1944/1946-1949)
#* LV101-103, 1946- LU101-103; LV104-109, 1946- LU104-109, 1950- L9663, no, 9664, 9665, no, no; LV110-114, 1946- LU110-114; LV115-118, later- LA101-104; LCM504; LV1, later- A; LV2, later- B; LV3, later- C; LV4, later- D; LV5, later- E; LV6, later- F; LV7, later- H; LV8, later- J; LV9, later- K; LV10, later- L; LV11, later- M; LV12, later- N; LV13, later- O; LU01, 02, 1950- L9661, 9662
# LV119 landing craft (1943-1944/1946)
#* LV119-124, later- LP101-106; LP107-115, 126
# LCA1 landing craft (1940-1944/1946-1955)
#* LCA1-4, 1946- LV115-118, 1950- L9501-9504; L9505-9515(i); L9515(ii); L9516(i); L9516(ii); L9517-9520
# L9531 landing craft (1955-1956)
#* L9531-9537
# L9521 landing craft (1956-1957)
#* L9521-9526
# L9510 landing craft (1962-1964)
#* L9510-9515, 9517, 9518, 9520, 9522
# L9530 landing craft (1984-1986)
#* L9530-9535
# L9536 landing craft (1990 - 1992)
#* L9536-9541
# L9525 landing craft (1998-1999)
#* L9525-9529
# L9565 landing craft (2008-2011)
#* L9565 - 9576
!! Landing fire support ships
# TROPENVOGEL small landing fire support ships (1942 - 1944 / 1950)
#* Zeearend (ex-LCI(G)420, ex-LCI(L)420)
#* Tropenvogel (ex-LCI(G)467, ex-LCI(L)467)
#* Zeemeeuw (ex-LCI(G)559, ex-LCI(L)559)
#* Stormvogel (ex-LCI(M)588, ex-LCI(L)588)
#* IJsvogel (ex-LCI(G)948, ex-LCI(L)948)
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Amsterdam 1962" Schepen331>>
{{||$:/_ship_template}}
<<slider "Bevoorradingsschip Amsterdam 2009" Schepen206>>
!! Andere hybrides
!!! Henri Pieper (1840–1898)/Nicolas Pieper (1870-1933)
In 1897 begon Henri Pieper - een wapenfabrikant - met de bouw van elektrische auto's als nevenactiviteit.<br>
In 1900 introduceerde Pieper een hybride auto. Een 1-cilinder De Dion-Bouton motor dreef een generator aan die de accu's oplaadde. Op het eerste gezicht dus een serie-hybride zoals de Lohner-Porsche 'Semper Vivus'. Op kruissnelhied was dit ook zo, maar daar beide motoren werden gebruikt als dat nodig was - b.v. bergop - was hier sprake van een z.g. half-hybride. Hiertoe bezat de auto een elektro-magnetische koppeling waarmee de in lijn geplaatste motoren gekoppeld konden worden.
De Belgische autofabrikant Auto-Mixte had van 1906 t/m 1912 een licentie om zo hybride auto's te bouwen.
!!! Louis Antoine Kriéger (1868–1951)
In 1894 begon de Fransman Kriéger met het ontwerpen en bouwen van elektrische auto's. In 1898 werd de 'Societe des Voitures Electriques Systeme Kriéger' opgericht. In 1903 produceerde Kriéger zijn eerste hybride auto die tevens stuurbekrachtiging bezat.<br>
Tot 1909 werden door Kriéger elektrische auto's gefabriceerd.
ex Amsterdam, IJM 58 (1913).<br>De trawler werd op 30 augustus 1939 gevorderd en verbouwd. Op 2 oktober van dat jaar werd het schip als boeienschip 4 in dienst gesteld. In mei 1940 kon het schip uitwijken naar Engeland waar het omgebouwd werd tot hulpmijnenveger veegdiensten verrichtte in Britse wateren. Op 17 maart 1943 werd de hulpmijnenveger uit dienst gesteld en overgedragen aan de Royal Navy. Na de oorlog werd het schip teruggegeven aan de oorspronkelijke eigenaar.
ex IJM 82 (1916)<br>De trawler werd op 2 september 1939 gevorderd en na de nodige aanpassingen op de 19e van die maand nog in dienst gesteld als Boeienschip 6. Het schip kon in de meidagen van 1940 niet ontkomen naar Engeland en viel in Duitse handen. De hulpmijnenveger is tijdens de oorlog verloren gegaan.
ex RO 15X (1931).<br>De trawler werd op 1 april 1940 gevorderd, omgebouwd tot hulpmijnenveger en in dienst gesteld als Hulpmijnenveger 5. In mei 1940 kon het schip niet uitwijken naar Engeland en werd in IJmuiden als blokschip tot zinken gebracht en viel later in Duitse handen.
//Bron: Wikipedia,// https://nl.wikipedia.org/wiki/%C3%81nyos_Jedlik
<<popup "Ányos István Jedlik" AnyosJedlik>> (Hongaars: Jedlik István Ányos, Slowaaks: Štefan Anián Jedlík) (Zemné, 11 januari 1800 – Győr, 13 december 1895) was een Hongaars uitvinder, technicus, natuurkundige en rooms-katholiek priester. Hij wordt gezien als de eigenlijke bedenker van de dynamo.
!!!Levensloop
Ányos Jedlik werd geboren in Zemné (Hongaars: Szímő), in het comitaat Komárom van het toenmalige koninkrijk Hongarije (nu Slowakije) als zoon van arme landarbeiders. Zowel Hongarije als Slowakije claimen hem als een van hun grootste uitvinders. Jedlik begon zijn opleiding aan de hogescholen van Trnava en Bratislava. In 1817 werd hij een benedictijn en volgde hij studies aan de scholen van deze kloosterorde. Tot 1839 gaf hij college aan benedictijnse scholen en was daarna 40 jaar lang verbonden aan de natuurkundig-mechanica faculteit van de Universiteit van Boedapest. Zijn activiteiten zouden een grote rol spelen in de ontwikkeling van een nieuwe generatie natuurkundigen.<br>
In 1845 begon hij les te geven in het Hongaars in plaats van het Latijn. Door zijn leerboek wordt hij beschouwd als een van de grondleggers van de Hongaarse woordenschat in de natuurkunde. Hij werd hoofd van de faculteit van kunsten in 1848, en rond 1863 werd hij rector van de universiteit. Vanaf 1858 was hij corresponderend lid van de Hongaarse Academie van Wetenschappen en vanaf 1873 erelid. Na zijn pensionering ging hij door met werken, maar de laatste jaren van zijn leven bracht hij in gehele afzondering door in een priorij in Győr waar hij ook overleed.
!!!Jedliks dynamo
Aangespoord door het werk van Ørsted, Ampère en Faraday begon Jedlik in 1827 te experimenteren met draaiende elektromagnetische machines. In plaats van gebruik te maken van permanente magneten waren in zijn prototype van de dynamo zowel het stilstaande als het roterende gedeelte uitgevoerd met elektromagneten. De exacte datum van zijn uitvinding is niet bekend omdat hij tot 1856 niet sprak over zijn belangrijkste uitvinding.<br>
In 1859 ontdekte hij het principe van elektrodynamische zelfopwekking bij dynamo's. In zijn journalen beschreef hij dat de kleine hoeveelheid remanent magnetisme die achterblijft in een elektromagneet, voldoende sterk is om de dynamo op te starten. In 1861 bouwde hij de 'eenpolige dynamo', die van deze zelfopwekking gebruikmaakt. Hierdoor formuleerde hij het concept van deze dynamo zeker 6 jaar voordat Werner von Siemens en Charles Wheatstone dit deden.
|borderless|k
|<<imageh Jedlikfirstelectricmotor.jpg 180>><br>//Jedlik's 'lightning-magnetic self-rotor'<br>'s werelds eerste motor, 1827.//| |<<imageh Jedlikelectriccar.jpg 180>><br>//Elektrisch voertuigmodel, 1828.<br> //|
[img[Anyos Jedlik|Foto/AnyosJedlik.jpg]]<br>
//Anyos Jedlik//
{{||$:/_plane_template}}
* <<slider "Arado Ar 196 ca. 1941" Vliegtuig202>>
* <<slider "Arado Ar 196 1944" Vliegtuig052>>
!! Arado
|Type |rol |opmerkingen |h
|[[Ar 196|Arado Ar 196]]|{{Arado Ar 196!!soort}}||
{{||$:/_ship_template}}
* <<slider "Torpedoboot 1898" Schepen048>>
* <<slider "Torpedoboot Ardjoeno ca. 1900" Schepen064>>
Werd in 1940 in dienst gesteld als Hulpmijnenveger 9 (HMV9). Op 3 maart 1942 werd het schip door de eigen bemanning tot zinken gebracht op het Marine Etablissement te Soerabaja. De Japanners hebben het schip gelicht en in dienst gesteld als hulponderzeebootjager 102. Na WWII werd de Ardjoeno teruggevonden in Soerabaja maar moest vanwege de slechte staat waar in het verkeerde worden afgeschreven.
De vijf schepen van de Ardjoeno-klasse werden gebouwd in opdracht van de Dienst van Scheepvaart en waren bedoeld als hulpschepen voor de Gouvernements Marine. Zij werden voor allerlei taken ingezet zoals personenvervoer en visserijcontrole. De klasse bestond uit de Ardjoeno, Kawi, Salak, Gedeh en Lawoe.
{{||$:/_ship_template}}
* <<slider "Opiumjager Arend of Valk ca. 1936" Schepen390>>
De nieuwe opiumjager Arend werd als flottielje vaartuig in dienst gesteld bij de Koninklijke Marine. Van 16 januari 1930 tot 4 augustus 1931 fungeerde de Arend als stationschip in de West. Pas op 10 april 1935 vertrok de opiumjager naar Nederlands Oost-Indië en kwam het schip onder de vlag van de Gouvernements Marine. Samen met de kanonneerboot [[Soemba (1926)]] werd de Arend vanaf 1936 vaak ingezet als bewakings- en patrouillevaartuig in het oostelijke deel van de Indonesische archipel.<br>
Na militarisatie werden de zusterschepen Arend en [[Valk (1929)]] belast met de bewakingsdienst Grote Oost. Er werd geopereerd vanuit Ambon in samenwerking met de Marine Luchtvaart Dienst (MLD).<br>
Een dag na de Japanse aanval op Pearl Harbor (7 december 1941), verklaarde Nederland de oorlog aan Japan. De Arend werd nu belast met het escorteren van koopvaardijschepen vanuit Tandjong Priok.<br>
Op 1 maart 1942 in Tandjong Priok tot zinken gebracht door de eigen bemanning.
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Argus ca. 1940" Schepen265>>
* <<slider "Duikvaartuig Argus 1953" Schepen334>>
Enige jaren na WWII in Duitsland terug gevonden.<br>
Na duikvaartuig communicatievaartuig te Den Helder, amfibisch oefenkamp De Mok te Texel .
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Argus 2006" Schepen212>>
{{||$:/_ship_template}}
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen421>>
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen431>>
De Aroe werd in 1938 gestationeerd in Manikwari, Nederlands Nieuw Guinea. De politiekruiser werd in mei 1940 omgebouwd tot Hulpmijnenveger 1 (HMV1). Op 2 maart 1942 werd Hr. Ms. Aroe door de eigen bemanning tot zinken gebracht in de haven van Tandjong Priok.
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Assahan ca. 1912" Schepen436>>
* <<slider "Schroefstoomschip Assahan ca. 1922" Schepen438>>
<!-- o.a. vliegtuigtender, vliegtuigmoederschip
Zie ook Serdang (1897) -->
{{NI}}<br>Werd in 1917 omgebouwd tot mijnenlegger.<br>
Ook gebruikt als vliegtuigmoederschip.<br>
In 1931 uit dienst gesteld.
!! ATAX
<<tabs "
[[Info ATAX]]
[[Cijfers ATAX]]
" "
[[Info ATAX]]
" "" "
">>
<<tabs ""
"ATAX " "" "ATAX"
"Cijfers ATAX " "" "Cijfers ATAX"
>>
<<imageh Fig_01_corr.jpg 400>>
<<imageh Fig_02_corr.jpg 400>>
<<imageh Fig_03_corr.jpg 400>>
<<imageh Fig_04.jpg 400>>
<<imageh Fig_06.jpg 400>>
<<imageh Fig_07.jpg 400>>
<<imageh Fig_08A.jpg 400>>
<<imageh Fig_08B.jpg 400>>
<<imageh Fig_09.jpg 400>>
<<imageh Fig_10.jpg 400>>
| |>|>|>| Electric Taxis |>|>|>| Gasoline Taxis |h
| | ''1919''| ''1920''| ''1921''| ''1922''| ''1919''| ''1920''| ''1921''| ''1922''|
|Revenues | 66.00| 63.40| 56.33| 47.82| 64.23| 61.83| 55.58| 47.02|
|Expenses | 55.56| 57.65| 54.07| 45.67| 42.40| 48.22| 51.77| 43.22|
|Proceeds | 10.44| 5.75| 2.26| 2.15| 21.83| 13.61| 3.81| 3.80|
|''Specified expenses:'' | | | | | | | | |
| Tires| 11.50| 8.05| 5.17| 4.32| 11.39| 8.16| 5.57| 4.82|
| Batteries/gasoline| 8.11| 9.83| 10.28| 8.46| 7.44| 8.87| 6.66| 4.32|
| Electricity/oil| 6.82| 5.95| 3.44| 2.50| 1.09| 1.33| 1.21| 0.56|
| Repair| 11.90| 10.95| 9.65| 7.19| 8.50| 10.74| 13.05| 11.68|
| @@.h KM costs@@| @@.h 38.33@@| @@.h 34.78@@| @@.h 28.54@@| @@.h 22.47@@| @@.h 28.42@@| @@.h 29.10@@| @@.h 26.49@@| @@.h 21.38@@|
| Drivers| 8.05| 10.07| 12.27| 12.50| 6.83| 8.90| 12.27| 12.13|
| Insurance| 0.83| 1.41| 1.60| 1.54| 0.74| 1.35| 1.76| 1.59|
| Wages| 2.83| 4.61| 4.81| 3.03| 1.14| 3.84| 4.81| 3.03|
| Miscellaneous| 5.52| 6.78| 6.85| 6.13| 5.27| 5.03| 6.44| 5.09|
| @@.h Fixed costs@@| @@.h 17.23@@| @@.h 22.87@@| @@.h 25.53@@| @@.h 23.20@@| @@.h 13.98@@| @@.h 19.12@@| @@.h 25.28@@| @@.h 21.84@@|
| @@.h Total costs@@| @@.h 55.56@@| @@.h 57.65@@| @@.h 54.07@@| @@.h 45.67@@| @@.h 42.40@@| @@.h 48.22@@| @@.h 51.77@@| @@.h 43.22@@|
|//Expenses for Electric and Gasoline Vehicles at the ATAX, 1919-1922// |c
//Sources: Friderichs, "Vergelijkende staat ATAX en Taxi Amsterdam over de jaren 1919-1922," ARM archives; reprinted from Mom, "Haver and andere motoren," p.263.//
> //All values are given as cents per km.//
<<imageh ATAX_5.jpg 400>>
//Aandeel van benzine en elektrisch aangedreven taxi's in de vloot van Atax tussen 1909 en 1927.//
<<imageh 1910_Hoek_Dam_Damrak_chauffeur_Koek.jpg 400>>
//De heer H.F. Koek achter het stuur van een Atax, op het Damrak, hoek Dam, 1910.//
<<imageh 1911_ATAX_te_water1.jpg 400>>
//Singel bij het Spui, ATAX te water, 1911.//
<<imageh 1911_ATAX_te_water2.jpg 400>>
//Singel bij het Spui, ATAX te water, 1911.<br>
De taxi wordt eruit gehaald m.b.v. het [['Sinck-hijstoestel'|https://hart.amsterdam/nl/page/25403/020today-paardenvlees]], ontworpen om paarden uit het water te takelen.//
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Atjeh 1899" Schepen134>>
!!! Tiddler voor schepen met pennasntnummer
```
<$tiddler tiddler=<<currentTab>>>
{{||$:/_pennantnummer_template}}
</$tiddler>
<!--
1) Kloon $:/_pennantnummer_details_template
2) Hernoem tiddler tot 'Schepen' (b.v. Fregatten)
3) Vervang in veld 'filter' de 'C' (voor kruisers) door het bijbehorende voorvoegsel toe (voor fregatten 'F')
<<penlinks filter char>>
vereist in TW5.1.17 $:/core/modules/filters/regexps.js
-->
```
ex IJM 195 (1911).<br>De trawler werd op 25 augustus 1939 gevorderd. Nadat de trawler verbouwd was werd deze in dienst gesteld als Hulpmijnenveger 2. Op 14 mei 1940 viel het schip in Duitse handen.
{{||$:/_ship_template}}
* <<slider "Mijnenveger B 1930" Schepen163>>
Maarschalk Balbo vertrok op 1 juli 1933 uit Ortobello met een eskader van 24 Savoia-Marchetti S.55 vliegboten.<br>Bij een tussenstop in Amsterdam verongelukte een vliegtuig; het raakte een dam en kapseisde.<br>
Het eskader vloog verder via de noordelijke Atlantische Oceaan naar de V.S. (Chicago). De terugvlucht ging via de zuidelijke route met aankomst te Ostia op 12-08-1933.<br>
Op de terugweg verongelukte een tweede toestel op de Azoren.
{{||$:/_ship_template}}
* <<slider "Mijnenlegger/kanonneerboot Balder 1910" Schepen385>>
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Balder 1954" Schepen333>>
In Nederland gebouwd via <<popup MDAP MDAP>>.
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Banckert ca. 1936" Schepen437>>
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Banckert ca. 1951" Schepen233>>
Ex-Britse Quilliam (G09).
{{||$:/_ship_template}}
* <<slider "Fregat Banckert 1980" Schepen423>>
Na de uitdienstname werd de Banckert verkocht aan Griekenland.<br>
Bij de Griekse marine is het schip op 14 mei 1993 in dienst genomen als ''Aegeon'' (F462).
Australisch korvet/mijnenveger ''Wollongong'' (J172). Vanaf 1946 bij Nederlandse marine. {{NI}}<br>
In 1950 naar Indonesische marine als ''Radjawali''.
Dit schip - gebouwd in 1926 - was oorspronkelijk de sleepboot Willem Braam van het Oost-Java Zouttransport. Het werd in 1936 verbouwd tot hulpopnemingsvaartuig en met de naam Hydrograaf bij de Gouvernementsmarine in dienst gesteld. Omdat in Nederland reeds een Hydrograaf aanwezig was werd het herdoopt in Bankalan. Na op het Marine-Etablissement in Soerabaja te zijn verbouwd tot hulpmijnenlegger werd het schip op 16 februari 1942 als zodanig in dienst gesteld. Op 18 februari 1942 werd het vaartuig bij een Japanse luchtaanval beschadigd en is op 2 maart 1942 te Soerabaja door de bemanning tot zinken gebracht. Het wrak werd waarschijnlijk in 1944 door de Japanners gelicht, hersteld en opnieuw in de vaart gebracht. In 1945 werd het teruggevonden en overgedragen aan de Dienst van Scheepvaart.
{{||$:/_ship_template}}
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen421>>
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen431>>
De Bantam werd in 1938 gestationeerd in Hollandia in Nederlands Nieuw Guinea. Het vaartuig werd in mei 1940 omgebouwd tot Hulpmijnenveger 4 (HMV4). Op 2 maart 1942 werd de Bantam door de eigen bemanning tot zinken gebracht te Tandjong Priok.
\define bm-addtofilter(tooltip, class)
<$button class="tc-btn-invisible bm-btn-addtofilter $class$"
tooltip="""$tooltip$""">
$(label)$⤴
<$action-setfield $tiddler=batchmanipulator
bm-filter-previous={{batchmanipulator!!bm-filter}} />
<$action-listops $tiddler="batchmanipulator" $field="bm-filter"
$subfilter="""[enlist<fieldselection>]""" />
</$button>
\end
\define concat() $(append2me)$ -[[$(tid)$]]
\define bm-removefromfilter()
<$vars append2me={{batchmanipulator!!bm-filter}} >
<$button class="tc-btn-invisible bm-btn-addtofilter bm-fontsmall bm-btn-tooltip bm-center">
{{$:/core/images/close-button}}
<div class="bm-tooltip">Remove from list</div>
<$action-setfield $tiddler=batchmanipulator
bm-filter-previous={{batchmanipulator!!bm-filter}} />
<$action-setfield $tiddler=batchmanipulator
bm-filter=<<concat>> />
</$button>
</$vars>
\end
\define addremove-btn(field, val, list)
<$set name=list value="""$list$""">
<$set name=addremove-this filter="""[[batchmanipulator]bm-field[tag]]"""
value="""$val$""" emptyValue="""$field$""">
<$vars field="""$field$""">
<$button class="bm-btn bm-btn-$(add-or-remove)$ tc-btn-invisible bm-btn-tooltip" >
<div class="bm-tooltip">$(add-or-remove)$ $field$ : $val$</div>
<$list filter="""[enlist<list>]""">
<$fieldmangler>
<$action-sendmessage
$message="tm-$(add-or-remove)$-$(tag-or-field)$"
$param=<<addremove-this>>
/>
<$macrocall $name="$(add-or-remove)$-$(tag-or-field)$" val="""$val$"""/>
</$fieldmangler>
</$list>
</$button>
</$vars>
</$set>
</$set>
<br>
\end
\define addremove-field-all(field, val)
<$wikify name=field text="$field$" >
<$wikify name=val text="""$val$""" >
<$set name=add-or-remove
filter="""[enlist<thetids>!$field$<val>] [enlist<thetids>is[missing]]"""
value=add emptyValue=remove >
<$macrocall $name=addremove-btn
field=<<field>>
val=<<val>>
list=<<thetids>>
/>
</$set>
</$wikify>
</$wikify>
\end
\define addremove-tag-single()
<$set name=add-or-remove filter="""[[$(tid)$]!tag[$(val)$]] [[$(tid)$]is[missing]]"""
value=add emptyValue=remove >
<$set name=t filter="""[[$(tid)$]]""">
<$macrocall $name=addremove-btn
field=tag
val=<<val>>
list=<<t>> />
</$set>
</$set>
\end
\define addremove-field-single()
<$list filter="""[[$(tid)$]!$(thefield)$[$(val)$]] [[$(tid)$]is[missing]!is[shadow]]""">
<$button class="bm-btn bm-btn-add tc-btn-invisible bm-btn-tooltip">
<div class="bm-tooltip">Set $(thefield)$ to $(val)$ (currently:
<$transclude tiddler=<<tid>> field=<<thefield>> />)
</div>
<$action-setfield $tiddler="""$(tid)$""" $(thefield)$="""$(val)$""" />
</$button>
</$list>
<$list filter="""[[$(tid)$]$(thefield)$[$(val)$]]""">
<$button class="bm-btn bm-btn-remove tc-btn-invisible bm-btn-tooltip">
<div class="bm-tooltip">Keep the field ($(thefield)$) but remove value $(val)$
</div>
<$action-setfield $tiddler="""$(tid)$""" $(thefield)$="" />
</$button>
</$list>
\end
\define delete-tid-btn()
<$button class="tc-btn-invisible bm-btn bm-fontsmall" tooltip="Delete this tiddler">
<$action-deletetiddler $tiddler="""$(tid)$"""/>
{{$:/core/images/delete-button}}
</$button>
\end
\define bm-relations-table-row()
<tr>
<td style="text-align:center">
<$list filter="""[[$(tid)$]is[tiddler]]"""><<delete-tid-btn>></$list>
</td>
<td style="padding:0"><<bm-removefromfilter>></td>
<td class="peek-hover">
<$link to="""$(tid)$""">$(tid)$</$link>
<div class="peek"><$transclude tiddler=<<tid>>/></div>
<$set name=label filter="""[tag<tid>count[]]""">
<$wikify name=fieldselection text="""[tag[<<tid>>]]""">
<$macrocall $name=bm-addtofilter
tooltip="Add as tag to filter"
class="bm-fontsmall"
/>
</$wikify>
</$set>
</td>
<$list filter="""[[batchmanipulator]bm-field[tag]]""">
<$list filter="""[enlist<thetids>tags[]sort[]reverse[]] [[$(val)$]] +[reverse[]]"""
variable="val">
<td><<addremove-tag-single>></td>
</$list>
</$list>
<$list filter="$(thefield)$ -tag">
<$list filter="""[enlist<thetids>fields[]] -created -creator -modified -modifier -tags -text -title +[sort[]reverse[]] [[$(thefield)$]] +[reverse[]]""" variable="thefield">
<td><<addremove-field-single>></td>
</$list>
</$list>
</tr>
\end
\define delete-all-items(items)
<$button popup=<<qualify "$:/state/batchDelete/$items$">>
tooltip="Delete $items$"
class="tc-btn-invisible">
{{$:/core/images/delete-button}}
</$button>
<$reveal state=<<qualify "$:/state/batchDelete/$items$">>
type="popup" position="belowleft" animate="yes">
<div class="tc-block-dropdown-wrapper foo">
<div class="tc-block-dropdown tc-edit-type-dropdown">
<div class="tc-dropdown-item-plain">
Are you sure you wish to delete all these $items$?
</div>
<div class="tc-dropdown-item-plain">
<$button class="tc-btn">
Delete all these $items$
<$list filter=""" $items$ +[suffix[tiddlers]]""">
<$action-deletetiddler $filter=<<thetids>>/>
</$list>
<$list filter=""" $items$ +[suffix[tags]]""">
<$list filter="""$(thetids)$""">
<$action-setfield $tiddler={{!!title}} tags=""/>
</$list>
</$list>
<$list filter=""" $items$ +[suffix[fields]]""">
<$list filter="""$(thetids)$""" >
<$action-deletefield $(thefield)$ />
</$list>
</$list>
</$button>
</div>
</div>
</div>
</$reveal>
\end
\define bm-dragpill()
<$draggable filter={{batchmanipulator!!bm-filter}} class="bm-drag">ALL</$draggable>
\end
\define head-tags-1(val)
<$list filter="""[enlist<thetids>$(tag-or-field)$s[]] +[sort[]reverse[]] [[$(val)$]] +[reverse[]]""">
<$wikify name=newfilter text="""[tag[{{!!title}}]tags[]tagging[]] $(limit)$""">
<th class="rotate"><div><span>
<$button set="batchmanipulator!!bm-filter"
setTo=<<newfilter>>
class="tc-btn-invisible tc-tiddlylink green-link bm-btn-tooltip">
<$view field="title"/>
<div class="bm-tooltip">Apply relations filter</div>
<$action-setfield $tiddler="$:/batchmanipulator/temp" text=""/>
</$button>
</span></div></th>
</$wikify>
</$list>
\end
\define head-tags-2()
<$list filter="""[enlist<thetids>$(tag-or-field)$s[]] +[sort[]reverse[]] -[[$(val)$]] [[$(val)$]] +[reverse[]]""">
<th><div><span>
<$macrocall $name=addremove-field-all field=tag val="{{!!title}}" />
</span></div>
</th>
</$list>
\end
\define head-fields-1()
<$list filter="""[enlist<thetids>$(tag-or-field)$s[]] -created -creator -modified -modifier -tags -text -title +[sort[]reverse[]] [[$(thefield)$]] +[reverse[]]""">
<$wikify name=newfilter text="""[has[{{!!title}}]get[{{!!title}}]tagging[]] $(limit)$""">
<th class="rotate"><div><span>
<$button set="batchmanipulator!!bm-filter"
setTo=<<newfilter>>
class="tc-btn-invisible tc-tiddlylink green-link bm-btn-tooltip">
<$view field="title"/>
<div class="bm-tooltip">Apply relations filter</div>
<$action-setfield $tiddler="$:/batchmanipulator/temp" text=""/>
</$button>
</span></div>
</th>
</$wikify>
</$list>
\end
\define head-fields-2()
<$list filter="""[enlist<thetids>$(tag-or-field)$s[]] -created -creator -modified -modifier -tags -text -title +[sort[]reverse[]] [[$(thefield)$]] +[reverse[]]""">
<th><div><span>
<$macrocall $name=addremove-field-all field={{!!title}} val="""$(val)$""" />
</span></div>
</th>
</$list>
\end
\define bm-relations-table-head()
<tr style="border-bottom:1px solid silver;">
<td colspan=3 style="text-align:right;">
<$list filter="""[[batchmanipulator]bm-field[tag]]""">
Apply tag to tiddler
</$list>
<$list filter="[[batchmanipulator]bm-display[relations]!bm-field[tag]]">
Set ''$(val)$'' as value for:
</$list>
</td>
<<head-$(tag-or-field)$s-1>>
</tr>
<tr style="border-bottom:2px solid silver ">
<td style="text-align:center;position:relative"><<delete-all-items tiddlers>></td>
<td></td>
<td style="text-align:center;"><<bm-dragpill>></td>
<<head-$(tag-or-field)$s-2>>
</tr>
\end
\define bm-relations-table()
<table class="bm-table bm-relations-table">
<<bm-relations-table-head>>
<$list filter=<<thetids>> variable="tid">
<<bm-relations-table-row>>
</$list>
</table>
\end
\define remove-btn(item)
<$button class="tc-btn-invisible bm-fontsmall " tooltip="Delete field $(thefield)$ and its value">
{{$:/core/images/delete-button}}
<$fieldmangler tiddler=<<tid>>>
<$action-sendmessage
$message=tm-remove-$(tag-or-field)$
$param="""$item$""" />
</$fieldmangler>
</$button>
\end
\define set-or-clear()
<$list filter="""[[$(tq)$]has[$(thefield)$]]""">
<$button tooltip="Set $(thefield)$">
''!''
<$action-setfield $tiddler="""$(tid)$""" $(thefield)$={{$(tq)$!!$(thefield)$}} />
<$action-deletetiddler $tiddler="""$(tq)$""" />
</$button>
</$list>
<$list filter="""[[$(tid)$]has[$(thefield)$]]""">
<$list filter="""[[$(tq)$]!has[$(thefield)$]]""">
<$button class="bm-btn tc-btn-invisible" tooltip="Clear $(thefield)$">
{{$:/core/images/close-button}}
<$action-setfield $tiddler="""$(tid)$""" $(thefield)$="" />
</$button>
</$list>
</$list>
\end
\define tid-qualify()
temp/bm/<<qualify """$(tid)$""">>
\end
\define bm-singledata-table()
<table class="bm-table">
<tr class="bm-singledata-table-head">
<td style="position:relative;"><<delete-all-items tiddlers>></td>
<td></td>
<td style="text-align:center;"><<bm-dragpill>></td>
<td style="text-align:center;">
<<addremove-field-all "$(thefield)$" """$(val)$""">>
</td>
<td style="position:relative;text-align:center;">
<$list filter="""[enlist<thetids>has:field[$(thefield)$]first[]] [[batchmanipulator]bm-field[tag]]""">
<<delete-all-items "$(tag-or-field)$s">>
</$list>
</td>
<$list filter="[[batchmanipulator]!bm-field[tag]]">
<td style="text-align:center;">,,$(thefield)$,,<br>^^value^^</td>
<td style="text-align:center;">
<$button class="tc-btn-invisible"
tooltip="Clear all $(thefield)$ fields">
{{$:/core/images/close-button}}
<$list filter="""$(thetids)$""">
<$action-setfield $(thefield)$="" />
</$list>
</$button>
</td>
</$list>
</tr>
<$list filter="""$(thetids)$""" variable="tid">
<tr>
<td><<delete-tid-btn>>
</td>
<td style="padding:0"><<bm-removefromfilter>></td>
<td class="peek-hover">
<$link to=<<tid>>><<tid>></$link>
<$set name=label filter="""[tag<tid>count[]]""">
<$wikify name=fieldselection text="[tag[<<tid>>]]">
<$macrocall $name=bm-addtofilter
tooltip="Add as tag to filter"
class="bm-fontsmall"
/>
</$wikify>
</$set>
<div class="peek"><$transclude tiddler=<<tid>>/></div>
</td>
<$list filter="[[batchmanipulator]!bm-field[tag]]">
<td style="white-space:nowrap">
<<addremove-$(tag-or-field)$-single>>
</td>
<td>
<$list filter="""[<tid>has:field[$(thefield)$]]""">
<<remove-btn $(thefield)$>>
</$list>
</td>
<$wikify name=tq text=<<tid-qualify>>>
<td style="padding-right:0; padding:0">
<$set name=placeholder filter="""[<tid>get[$(thefield)$]]""">
<$edit-text tag=input size=8
tiddler=<<tq>> field="$(thefield)$"
placeholder=<<placeholder>>
/>
</$set>
</td>
<td class="bm-fontsmall bm-center">
<<set-or-clear>>
</td>
</$wikify>
</$list>
<$list filter="""[[batchmanipulator]bm-field[tag]]""">
<td style="white-space:nowrap; text-align:center;">
<<addremove-$(tag-or-field)$-single>>
</td>
<td style="padding-top:0px;">
<$set name=tgs value={{{ [<tid>get[tags]] }}}>
<div class="bm-fontsmall">
<$list filter="""[enlist<tgs>]""">
<$checkbox
tiddler=<<tid>>
tag={{!!title}}
/>
<$wikify name=newfilter text="""[tag[{{!!title}}]tags[]tagging[]] $(limit)$""">
<$button set="batchmanipulator!!bm-filter"
setTo=<<newfilter>>
class="tc-btn-invisible tc-tiddlylink green-link bm-btn-tooltip">
<$view field="title"/>
<div class="bm-tooltip">Apply relations filter</div>
<$action-setfield $tiddler="$:/batchmanipulator/temp" text=""/>
</$button>
<$set name=label filter="""[tag{!!title}count[]]""">
<$wikify name=fieldselection text="[tag[{{!!title}}]]">
<$macrocall $name=bm-addtofilter
tooltip="Add as tag to filter"
/>
</$wikify>
</$set>
</$wikify>
</$list>
</div>
</$set>
</td>
</$list>
</tr>
</$list>
</table>
\end
\define bm-input-table()
<table class="bm-table bm-input-table" >
<tr>
<td style="text-align:center; vertical-align:bottom">^^Back. Up. First. !^^<br>
<$button>
<$list filter="[[batchmanipulator]bm-display[singledata]]">
single data
<$action-setfield $tiddler=batchmanipulator bm-display=relations/>
</$list>
<$list filter="[[batchmanipulator]!bm-display[singledata]]">
relations
<$action-setfield $tiddler=batchmanipulator bm-display=singledata />
</$list>
</$button>
</td>
<td style="white-space:nowrap;">
,,Select / type titles or 'filter'. Note [[space brackets]].,,<br>
<$edit-text class='tc-edit-texteditor' tag=input
default={{batchmanipulator!!bm-filter}}
tiddler="$:/batchmanipulator/temp/filter"
placeholder={{batchmanipulator!!bm-filter}}
/>
</td>
<td style="vertical-align:bottom;padding:0;padding-bottom:5px;white-space:nowrap;">
<$list filter="[[$:/batchmanipulator/temp/filter]has[text]] [[batchmanipulator]get[bm-filter]] +[first[]]">
<$button class="bm-btn tc-btn-invisible" tooltip="Clear filter">
{{$:/core/images/close-button}}
<$action-setfield $tiddler="batchmanipulator" bm-filter="" />
<$action-setfield $tiddler="$:/batchmanipulator/temp/filter" text="" />
<$action-navigate $to="batchmanipulator"/>
</$button>
</$list>
<$list filter="[[$:/batchmanipulator/temp/filter]has[text]]">
<$button class="bm-alert bm-btn-tooltip">
!
<div class="bm-tooltip">Click to apply filter</div>
<$action-setfield $tiddler=batchmanipulator
bm-filter-previous={{batchmanipulator!!bm-filter}} />
<$action-setfield $tiddler=batchmanipulator
bm-filter={{$:/batchmanipulator/temp/filter}} />
<$action-deletetiddler $tiddler="$:/batchmanipulator/temp/filter"/>
</$button>
</$list>
</td>
</tr>
<tr>
<td style="text-align:center; vertical-align:top;">
^^Current view^^
</td>
<td style="white-space:nowrap">
<$select tiddler="batchmanipulator" field="bm-filter" default="""{{!!bm-filter}}""" >
<option value={{batchmanipulator!!bm-filter-previous}}>back to last filter</option>
<optgroup label='Filters based on user set values (i.e set them first)'>
<$list filter="""[[batchmanipulator]bm-field[tag]]""">
<option value="[tag[$(val)$]] $(limit)$">$(val)$ tag siblings</option>
<option value="[tag[$(val)$]tags[]tagging[]] $(limit)$">$(val)$ tag cousins</option>
</$list>
<$list filter="$(tag-or-field)$ -tag">
<option value="[has:field[$(thefield)$]] $(limit)$">field siblings: $(thefield)$</option>
<option value="[has:field[$(thefield)$]$(thefield)$[$(val)$]] $(limit)$">field+value siblings: $(thefield)$:$(val)$</option>
</$list>
</optgroup>
<optgroup label='custom - Locate "XXX" in editmode to customize'>
<option value="[type[text/x-tiddlywiki]] $(limit)$">TWC to TW5 - remove type & changecount </option>
<option value="aa [[bb bb]] cc dd ee">titles for testing</option>
<option value="">...</option>
</optgroup>
</$select><$select tiddler="batchmanipulator" field="bm-filterlimit" default="limit[10]" >
<option value="+[limit[5]]">5</option>
<option value="+[limit[10]]">10</option>
<option value="+[limit[20]]">20</option>
<option value="+[limit[50]]">50</option>
<option value="+[limit[100]]">100</option>
<option value="">no.l</option>
</$select>
<$wikify name=fieldselection text="{{batchmanipulator!!bm-filterlimit}}">
<$macrocall $name=bm-addtofilter
tooltip="(Optional) Add limit to filter"
/>
</$wikify>
</td>
<td></td>
</tr>
<tr>
<td style="white-space:nowrap;">
,,Select or create what to manipulate:,,</td>
<td>
,,New or existing field value or tag to use:,,
</td>
<td>
</td>
</tr>
<tr>
<td style="white-space:nowrap; text-align:right;">
<$select tiddler="batchmanipulator" field="bm-field" default="tag">
<option value="tag"> tags</option>
<option value="bm-new-field"> [create new field]</option>
<optgroup label='fields'>
<$list variable="field"
filter="""[{!!bm-field}] [!is[shadow]!is[system]fields[]sort[]] -title -text -field-filter
-bm-filter -bm-filter-previous -bm-filterlimit -bm-value -bm-field -bm-tag -bm-display -bm-message""" >
<option value=<<field>>><<field>></option>
</$list>
</optgroup>
</$select>
<$list filter="$(thefield)$ -tag">
<$set name=label filter="""[has[$(thefield)$]count[]]""">
<$wikify name=fieldselection text="""[has[$(thefield)$]]""">
<$macrocall $name=bm-addtofilter
tooltip="""(Optional) Add [has[$(thefield)$]] to filter"""
class="bm-fontsmall"
/>
</$wikify>
</$set>
</$list>
<$list filter="[[batchmanipulator]bm-field[bm-new-field]]"><br>
<$set name=placeholder
filter="[[batchmanipulator]get[bm-field]] -bm-new-field"
value={{batchmanipulator!!bm-name}}
emptyValue=" new field name"
>
<$edit-text tag=input size=15
tiddler="$:/batchmanipulator/temp" field="bm-field"
placeholder=<<placeholder>>
/>
</$set>
<$button class="bm-alert bm-btn-tooltip">
!
<div class="bm-tooltip">Click to create field name</div>
<$action-setfield $tiddler=batchmanipulator
bm-field={{$:/batchmanipulator/temp!!bm-field}} />
<$action-setfield $tiddler="$:/batchmanipulator/temp" bm-field="" />
</$button>
</$list>
</td>
<$list filter="[[$(tag-or-field)$]prefix[field]]">
</$list>
<td style="white-space:nowrap">
<$set name=placeholder filter="""[[batchmanipulator]get[bm-value]]"""
value="""$(val)$"""
emptyValue="(new value)"
>
<$edit-text class='tc-edit-texteditor bm-fieldeditor' tag=input
tiddler="$:/batchmanipulator/temp" field="bm-value"
placeholder=<<placeholder>>
/>
</$set>
<$list filter="[[$:/batchmanipulator/temp]!has[bm-value]]">
<$set name=label filter="""[$(thefield)$[$(val)$]count[]]""">
<$wikify name=fieldselection
text="""[{{batchmanipulator!!bm-field}}[{{batchmanipulator!!bm-value}}]]""">
<$macrocall $name=bm-addtofilter
tooltip="(Optional) Add to filter"
class="bm-fontsmall"
/>
</$wikify>
</$set>
</$list>
<$list filter="""[[$:/batchmanipulator/temp]get[bm-value]]""">
<$button class="bm-alert bm-btn-tooltip">
!
<div class="bm-tooltip">Click to apply value</div>
<$action-setfield $tiddler=batchmanipulator
bm-value={{$:/batchmanipulator/temp!!bm-value}}
/>
<$action-setfield $tiddler="$:/batchmanipulator/temp"
$field="bm-value"
$value=""
/>
</$button></$list>
</td>
<td>
</td>
</tr>
</table>
\end
\define singledata() <<bm-singledata-table>>
\define relations() <<bm-relations-table>>
\define bm-inner()
<$set name=tag-or-field filter="""[[batchmanipulator]get[bm-field]] -tag"""
value=field emptyValue=tag >
<$set name=val value={{batchmanipulator!!bm-value}}>
{{Xbatchmanipulator/peek}}
<<bm-input-table>>
<br>
<$list filter="[[batchmanipulator]has[bm-filter]!bm-field[bm-new-field]]">
<$macrocall $name={{!!bm-display}} />
</$list>
</$set>
</$set>
\end
<$set name=thetids filter={{batchmanipulator!!bm-filter}} >
<$wikify name=limit text={{batchmanipulator!!bm-filterlimit}} >
<$set name=thefield filter={{batchmanipulator!!bm-field}} >
<<bm-inner>>
</$set>
</$wikify>
</$set>
<$button to="batchmanipulator" tooltip="Manipulate batches" class=<<tv-config-toolbar-class>>>
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/core/images/spiral}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<$text text="manipulate batches"/>
</$list>
</$button>
.bm-table {margin:0 auto;}
.bm-table, .bm-table th, .bm-table td {
border:0; background:white;
}
.bm-input-table {width:100%;}
.bm-input-table > tr > td:nth-child(2) {max-width:300px;}
.bm-input-table select {max-width:calc(100% - 50px - 1.2em);}
.bm-fieldeditor {max-width:calc(100% - 1.2em);}
.bm-relations-table {margin-top:4em;}
.bm-table th.rotate {
white-space: nowrap;
vertical-align:bottom;
}
.bm-table th.rotate > div {
transform: translate(27px, -.5em) rotate(315deg);
width: 1em;
margin-left:-1em;
}
.bm-table th.rotate > div > span {
border-bottom: 1px solid #ccc;
padding: 0px 10px 2px 0;
margin-left:-.6em;
background:white;
}
.bm-table ::-webkit-input-placeholder { color: #a6a6a6; }
.bm-table :-ms-input-placeholder { color: #a6a6a6; }
.bm-table ::-ms-input-placeholder { color: #a6a6a6; }
.bm-table ::-moz-placeholder { color: #a6a6a6; }
.bm-singledata-table-head {border-bottom:2px solid silver}
.bm-btn {width:1em;}
.bm-btn-addtofilter {color:blue; }
.bm-btn-add, .tm-add-tag, .tm-add-field { background:lightgray;}
.bm-btn-remove, .tm-remove-tag, .tm-remove-field {background:lightgreen;}
.peek {display:none;z-index:2;background-color:lightgray;position:absolute;}
.peek-hover:hover .peek {display:block; background:lightgray;}
.bm-tooltip {position:absolute; display:none; z-index:2;background:white; margin:-2.6em -1em; border:1px solid silver; padding:0 5px; color:black;white-space:nowrap;}
.bm-btn-tooltip:hover .bm-tooltip {display:block;}
.bm-fontsmall {font-size:.8em; fill:gray;}
.bm-center {text-align:center; vertical-align:text-bottom;}
.bm-fontsmall svg,
.bm-fontsmall input[type="checkbox"] {vertical-align:text-top}
.bm-alert {border-color:red;}
.bm-drag {background:#ec6; border-radius:1em; padding:0; line-height:1.1em; width:3em; display:inline-block;}
button.green-link {color:#00cc00;}
In 1952 herklassificatie tot fregat.
De Bathurst-klasse korvetten werden in Australië gebouwd gedurende WWII.<br>
Oorspronkelijk geklassificeerd als mijnenvegers maar gewoonlijk beschouwd als korvetten met verschillende taken: onderzeebootjager, mijnenveger, patrouilleschip, escortschip, ...<br>
Na de oorlog werden 8 schepen verkocht aan de Nederlandse marine.
[[Dutchfleet: Ambonklasse|https://www.dutchfleet.nl/showthread.php/12164-De-Ambon-klasse?highlight=ternate]]
"""
Classificatie wijzigingen
De schepen hebben de volgende indeling gekend:
15-06-1946: MV (mijnenveger)
15-09-1946: PK (korvet)
15-01-1947: P (patrouilleschip)
15-10-1950: M (mijnenveger)
15-07-1952: F (fregat)
15-07-1957: A (hulpschip, i.c. logementschip) (de Ternate mogelijk al in 1956)
"""
!!! HMAS CAIRNS J.183 (B.239)
Hr.Ms. CAIRNS (CAS) 17-01-1946 in dienst gesteld te Brisbane.<br>
07-03-1946 vertrek naar Makassar.<br>
Hr.Ms. ''AMBON'' (AMB) 01-06-1946 naam in gebruik genomen.
MV 21, PK 1, P 6, M 811 (toegekend, maar niet gevoerd).
06-04-1950 in bruikleen naar de ALRIS (later ALRI) als “BANTENG”.
!!! HMAS WOLLONGONG J.172 (B-nummer niet bekend, wellicht niet toegewezen)
Hr.Ms. WOLLONGONG (WLG) 11-02-1946 in dienst gesteld te Sydney.<br>
07-03-1946 vertrek naar Makassar.<br>
Hr.Ms. ''BANDA'' (BAN) 01-06-1946 naam in gebruik genomen (logboek !!)
Naamseinen: MV 22, PK 2, P 7, M 812 (toegekend, maar niet gevoerd).
06-04-150 in bruikleen naar de ALRIS als “RADJAWALI”
!!! HMAS KALGOORLIE J.192 (B.245)
Hr.Ms. KALGOORLIE 08-05-1946 in dienst gesteld te Melbourne.<br>
28-06-1946 vertrek naar Makassar.<br>
Hr.Ms. ''TERNATE'' (TNT) 12-08-1946 bij vertrek uit Koepang (Timor).
MV 23, PK 3, P 8, M 816, F 812, A 874.
!!! HMAS TAMWORTH J.181 (B.250)
Hr.Ms. TAMWORTH 30-04-1946 in dienst gesteld te Sydney.<br>
26-06-1946 vertrek naar Makassar<br>
Hr.Ms. ''TIDORE'' (TDR) 16-07-1946 bij vertrek uit Koepang (Timor).
Naamseinen: MV 24, PK 4, P 9.
15-06-1949 naar de Federale Schependienst.
28-12-1949 naar de ALRIS als “PATI UNUS”.
!!! HMAS LISMORE J.145 (B.247)
Hr.Ms. LISMORE 04-07-1946 in dienst gesteld te Trincomalee.<br>
06-07-1946 vertrek naar Sabang.<br>
Hr.Ms. ''BATJAN'' (BAT) 18-07-1946 bij aankomst te Tandjong Priok.
Naamseinen: MV 25, PK 5, P 10, M 813, F 813, A 870.
!!! HMAS TOOWOOMBA J.157 (B.251)
Hr.Ms. TOOWOOMBA 05-07-1946 in dienst gesteld te Trincomalee.<br>
06-07-1946 bij vertrek naar Sabang<br>
Hr.Ms. ''BOEROE'' (BRE) 18-07-1946 bij aankomst te Tandjang Priok.
Naamseinen: MV 26, PK 6, P 11, M 814, F 814, A 871.
Op 15-12-1948 tijdelijk naar het Departement van Scheepvaart. Het oorlogsjournaal wordt afgesloten per 13-12-1948 “bij overgave aan `DvS`”.<br>
Op 20-04-1949 teruggegeven aan de Koninklijke Marine.
!!! HMAS BURNIE J.198 (B.238)
Hr.Ms. BURNIE 05-07-1946 in dienst gesteld te Trincomalee.<br>
Hr.Ms. CERAM (CER) 18-07-1946 bij aankomst te Tandjong Priok.
Naamseinen: MV 27, PK 7, P 12, M 815, F 815, A 872.
!!! HMAS IPSWICH J.186 (B.244)
Hr.Ms. IPSWICH 05-07-1946 in dienst gesteld te Trincomalee.<br>
06-07-1947 vertrek naar Sabang.<br>
Hr.Ms. MOROTAI (MOR) 18-07-1946 bij aankomst te Tandjong Priok.
Naamseinen: MV 28, PK 8, P13.
23-081948 naar het Departement van Scheepvaart.
23-08-1949 naar de ALRIS als “HANG TUAH”
De gegevens in dit artikel zijn, voor zover niet hierboven al genoemd, uit diverse originele bronnen afkomstig, te weten:
- de scheepsjournalen van de verschillende schepen (voor zover aanwezig) in het Natio-naal. Archief, Archief Departement van Marine, Scheepsjournalen, toegang 2.12.03.
- de dislocatierapporten en situatierapporten in het Nationaal Archief, Archief Departe-ment van Defensie, Commandant der Zeemacht in Ned. Indië, toegang 2.13.72.
Verder is gebruik gemaakt van verschillende jaren van het Marine Jaarboek en het boek “Operaties in de Oost” door Van Holst Pellekaan en de Regt en tot slot eigen documentatie.
"""
{{||$:/_ship_template}}
* <<slider "Korvet Batjan ca. 1948" Schepen468>>
Australisch korvet/mijnenveger ''Lismore'' (J1145). Vanaf 1946 bij Nederlandse marine.
{{NI}}<br>
Eind 1949 naar Nederland.<br>Wisselende diensten o.a. als politievaartuig op de Noordzee bij de visserij.<br>
{{Bathurst}}<br>
In 1957 in gebruik genomen als logementschip.
{{||$:/_ship_template}}
* <<slider "Batok ca. 1900" Schepen079>>
15-5-2019
!!! Bestellen/downloaden
Met ingang van 25 juli 2018 is de online beeldcollectie van het Nederlands Instituut voor Militaire Historie (NIMH) vrij beschikbaar. Dit betekent dat er voor het downloaden en het gebruik van deze beelden niet meer betaald hoeft te worden.
U kunt foto's downloaden door te klikken op de tekst 'download', links onder de foto in de detailpresentatie van elke afzonderlijke foto in de beeldbank.
Het aanvragen van een MPEG4-bestand van films is eveneens kosteloos mogelijk. U kunt hiervoor een verzoek richten aan nimh@mindef.nl met vermelding van het nummer en de titel van de desbetreffende film. U ontvangt het bestand dan zo snel mogelijk per webtransfer.
Een deel van de foto's is nog niet in hoge resolutie beschikbaar. Het NIMH streeft ernaar de gehele beeldcollectie in hoge resolutie digitaal aan te bieden, maar gelet op de grote omvang kan dit nog jaren duren.
Aan het gebruik van beeldmateriaal van het NIMH zijn voorwaarden verbonden. Alle voorwaarden vindt u op de pagina gebruiksvoorwaarden.
...
!!! VOORWAARDEN VOOR HET GEBRUIK VAN DOOR HET NEDERLANDS INSTITUUT VOOR MILITAIRE HISTORIE VERSTREKT BEELDMATERIAAL
Gaat u beeldmateriaal uit de collectie van het NIMH publiceren of op andere manier openbaar maken? Dan gelden de volgende voorwaarden:
# Het beeldmateriaal is en blijft eigendom van het Nederlands Instituut voor Militaire Historie.
# Het is niet toegestaan het beeldmateriaal te gebruiken voor een doel dat niet overeenkomt met het doel waarvoor het beeldmateriaal is vervaardigd. Het beeldmateriaal dient het tonen van militaire historie die voor iedere betrokkene respectvol is, met als doel educatie, voorlichting en weergave van de geschiedenis.
# Bij reproductie voor zakelijk gebruik en publicatie van het op beeldmateriaal vastgelegde werk moet als bronvermelding duidelijk 'Collectie Nederlands Instituut voor Militaire Historie' worden vermeld.
# In geval de gebruiker verzuimt de bron van het materiaal te vermelden, is de gebruiker aan het Nederlands Instituut voor Militaire Historie een boete van € 250,- per verzuim verschuldigd.
# Het is niet toegestaan het beeldmateriaal te gebruiken in strijd met de openbare orde of goede zeden.
# Als een op het beeldmateriaal vastgelegd werk auteursrechtelijk is beschermd, mag de gebruiker dat werk niet reproduceren of publiceren voordat de gebruiker daarvoor toestemming heeft gekregen van de auteursrechthebbende. De gebruiker moet die toestemming zelf aanvragen. Het Nederlands Instituut voor Militaire Historie is niet aansprakelijk voor de gevolgen van een verzuim van de gebruiker om toestemming te verkrijgen.
# Verstrekking van beeldmateriaal aan derden is verboden zonder inachtneming van deze voorwaarden.
# Van deze voorwaarden kan slechts door het Nederlands Instituut voor Militaire Historie worden afgeweken. Deze afwijking geschiedt schriftelijk.
# Het NIMH stelt het ontvangen van een bewijsexemplaar van publicaties waarin beeldmateriaal van het NIMH is gebruikt op prijs.
---
17-6-2019 iets gewijzigd!
!!! Download
Voor iedere vorm van openbaarmaking van afbeeldingen of documenten uit de archieven en collecties heeft u toestemming nodig: of van de archivaris, of van de auteursrechthebbende als er auteursrechten op een beeld rusten.
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Bellatrix ca. 1928" Schepen394>>
{{NI}} Stationschip te Olehleh, Noord-Sumatra. In 1939 werd de Bellatrix tijdelijk afgelost door de [[Poolster (1939)]].
Na de aflossing werd de Bellatrix ingezet voor de bewaking van de wateren rond Bali en Lombok en vanaf mei 1940 van Straat Soenda, tussen Java en Sumatra, met als basis Tandjong Priok. Tegelijkertijd werd de [[Sirius (1922)]] toegevoegd aan de Bellatrix zodat de schepen elkaar konden aflossen.<br>
Op 1 maart 1942 in de haven van Tandjong Priok door de eigen bemanning tot zinken gebracht.
ex IJM 16, Beatrice (1907).<br>De trawler kon in mei 1940 uitwijken naar Engeland waar het schip werd gevorderd en omgebouwd tot hulpmijnenveger. De Bergen verrichtte veegoperaties in Britse wateren. Op 1 juni 1942 werd het schip uit dienst gesteld en overgedragen aan de Royal Navy. In Britse dienst is de omgebouwde trawler tijdens de oorlog verloren gegaan.
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Beveland 1955" Schepen335>>
ex-MMS237<br>In 1955 omgebouwd tot duikvaartuig (A897).
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Bever ca. 1900" Schepen379>>
!!! Bevoorrader
Een van de <<popup ondersteuningsschepen Ondersteuningsschip>>.<br>
Een bevoorradingsschip - of kort bevoorrader - heeft als taak om marineschepen op zee te bevoorraden. Het gaat dan om brandstof voor schepen en helikopters / vliegtuigen, reserveonderdelen, munitie en victualiën (eten en drinken).
<<w>>
{{||$:/_ship_template}}
* <<slider "Hulpmijnenveger Bloemendaal ca. 1939" Schepen420>>
ex IJM 71, Christina Catharina, Admiral Souchon (1917).<br>Op 4 september 1939 werd de trawler gevorderd en verbouwd tot boeienschip (Boeienschip 5). In mei 1940 kon het schip ontkomen naar Engeland waar het werd ingericht als hulpmijnenveger. Ruim drie jaar lang verrichtte het schip veegoperaties in Britse wateren totdat het op 29 oktober 1943 uit dienst gesteld en overgedragen werd aan de Britse marine. Na de oorlog is het schip teruggegeven aan de eigenaar.
{{||$:/_plane_template}}
* <<slider "Blohm & Voss Ha 139 1937" Vliegtuig196>>
* <<slider "Blohm & Voss Ha 139 ca. 1938" Vliegtuig195>>
Ontworpen als postvliegtuig met de mogelijkheid van een katapultstart vanaf een schip om de actieradius te vergroten.<br>
In WWII werd de HA 139 voor militaire doeleinden - transport, verkennen, mijnopsporing - gebruikt.<br>
!! Blohm & Voss
|Type |rol |opmerkingen |h
|[[Ha 139|Blohm & Voss Ha 139]]|{{Blohm & Voss Ha 139!!soort}}||
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Blommendal ca. 1990" Schepen208>>
* <<slider "Opnemingsvaartuig Blommendal ca. 1990" Schepen269>>
{{||$:/_ship_template}}
* <<slider "Fregat Bloys van Treslong ca. 1993" Schepen469>>
Na de uitdienstname werd de Bloys van Treslong verkocht aan Griekenland.<br>
Bij de Griekse marine is het schip op 19 november 2004 in dienst genomen als ''Nikiforos Fokas'' (F466).
In USA gebouwde kustmijnenvegers van de Bluebird-klasse.<br>
De schepen zijn gebouwd van hout, over aluminium spanten.
Verkregen via <<popup MDAP MDAP>>.
British Overseas Airways Corporation
{{||$:/_plane_template}}
* <<slider "Boeing 314 Clipper 1939" Vliegtuig148>>
* <<slider "Boeing 314 Clipper ca .1942" Vliegtuig149>>
Eind jaren dertig had Pan American World Airways (~PanAm) de behoefte aan een vliegboot met een groot bereik voor luxe langeafstandsvluchten (als vervanger voor de drie al eerder gekochte Martin M-130 vliegboten).<br>
De keuze viel op Boeing die voor het ontwerp gebruik maakte van een eerder ontwikkelde vleugel. De romp bood ruimte aan maximaal 74 passagiers en de 8 bemanningsleden. Voor nachtvluchten waren er stapelbedden beschikbaar en er was een aparte eetzaal met keuken aan boord. Er was tot slot ruimte voor 4.750 kilogram vracht.<br>
~PanAm bestelde 6 toestellen en de eerste van deze serie maakte op 7 juni 1938 de eerste vlucht. Alle zes Boeing 314's werden binnen een jaar geleverd.<br>
~PanAm bestelde in september 1939 nog eens 6 vliegboten. Deze kregen grotere brandstoftanks en iets sterkere motoren en konden daarom ook 3 extra passagiers meenemen. Deze versie kreeg de aanduiding 314A en later kregen de zes oudere toestellen ook deze nieuwe motoren.
Tijdens WWII nam het Amerikaanse leger 2 toestellen over van ~PanAm, al bleef ~PanAm zorgen voor de bemanning en de vluchten.<br>~PanAm verkocht ook 3 exemplaren aan British Overseas Airways Corporation (BOAC) die ze gebruikte voor transatlantische vluchten. Na de oorlog kwamen alle toestellen terug naar ~PanAm, maar de vliegboot had zijn beste tijd gehad.
!! Boeing
|Type |rol |opmerkingen |h
|[[314 Clipper|Boeing 314 Clipper]]|{{Boeing 314 Clipper!!soort}}||
|[[344 Sea Ranger|Boeing XPBB-1 Sea Ranger]]|{{Boeing XPBB-1 Sea Ranger!!soort}}||
{{||$:/_plane_template}}
* <<slider "Boeing XPBB-1 Sea Ranger 1943" Vliegtuig198>>
* <<slider "Boeing XPBB-1 Sea Ranger 1943" Vliegtuig198>>
Ook bekend als Boeing model 344.<br>
Slechts 1 prototype gebouwd; vandaar de nickname 'Lone Ranger'.
Australisch korvet/mijnenveger ''Toowoomba'' (J157). Vanaf 1946 bij Nederlandse marine.
{{NI}}<br>
{{Bathurst}}<br>
In 1957 in gebruik genomen als logementschip.
{{||$:/_ship_template}}
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen421>>
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen431>>
De politiekruiser werd in 1938 gestationeerd in Seroei, Nederlands Nieuw Guinea. In mei 1940 werd het schip omgebouwd tot Hulpmijnenveger 3 (HMV3). Op 2 maart 1942 werd de Bogor in Tandjong Priok door de eigen bemanning tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Bolsward 1968" Schepen226>>
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Bonaire 1877" Schepen152>>
{{NI}}<br>De inzet als oorlogsschip heeft zich beperkt tot enkele vaarten naar het Caribisch gebied tegen zeerovers uit Venezuela en Colombia.<br>
Het <<popup "schroefstoomschip Bonaire" "Schroefstoomschip Bonaire">> is het oudste nog bestaande zeeschip, dat op een Nederlandse werf is gebouwd en wordt sinds 2005 [[gerestaureerd|http://stichtingbonaire.nl/?menu_id=1]].
De Fokker C.XIw kon met een katapult gelanceerd worden (sneller dan het overboord zetten van een watervliegtuig dat vervolgens met eigen motor moet starten).
{{||$:/_ship_template}}
* <<slider "Mijnenveger Borndiep ca. 1946" Schepen169>>
Oorspronkelijk US YMS-210, daarna Brits BYMS 2210.<br>{{YMS46}}<br>1957 - 1962 duikvaartuig.
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Borneo 1893" Schepen282>>
Stalen romp met koperplaten bekleed!<br>{{NI}} Vanaf 1906 tot 1916 ingezet als opnemingsvaartuig.
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Brak ca. 1890" Schepen021>>
* <<slider "Kanonneerboot Brak 1910" Schepen020>>
later [ext[Herstellingsboot 'Wilhelmina'|Amsterdam_1822-heden.html#Herstellingsboten]] in de 'Hugo de Grootbuurt' wiki.
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Brinio ca. 1928" Schepen090>>
[[Wikipedia|https://nl.wikipedia.org/wiki/Lijst_van_scheepsklassen_van_de_Nederlandse_marine]] aangevuld met elders verworven informatie, o.a.:
* [[Navypedia|http://www.navypedia.org/ships/netherlands/nl_index.htm]] (Engels)
* [[Navyworld|http://navyworld.narod.ru/ndidx.htm]] (Russisch)
* [[Onze vloot|https://onzevloot.weebly.com/]] (Nederlands)
* [[Forum DutchFleet|https://www.dutchfleet.nl/]] (Nederlands)
* [[Traces of war|https://www.tracesofwar.nl]] (Nederlands)
* [[Marineschepen|https://marineschepen.nl/]] (Nederlands)
** [[Marineschepen 1945-heden|https://www.flickr.com/photos/58138998@N02/14784809959/sizes/o/]]
{{||$:/_ship_template}}
* <<slider "Duikboot Bruinvis 2016" Schepen319>>
{{||$:/_ship_template}}
* <<slider "Hulpmijnenveger Bruinvisch ca. 1942" Schepen425>>
ex IJM 47 (1929).<br>De trawler kon in mei 1940 ontkomen naar Engeland waar hij werd gevorderd en omgebouwd tot hulpmijnenveger. Op 26 augustus 1941 in dienst gesteld. Nam deel aan mijnenveegoperaties in de zeeën rond Groot-Brittannië. Op 28 maart 1944 werd het schip uit dienst gesteld en overgedragen aan de Royal Navy. In 1946 is de trawler teruggegeven aan de oorspronkelijke eigenaar.
{{||$:/_ship_template}}
* <<slider "Doorsnede ramtorenschip Buffel" Schepen412>>
* <<slider "Ramtorenschip Buffel 1891" Schepen411>>
* <<slider "Ramtorenschip Buffel 2008" Schepen042>>
* <<slider "Ramtorenschip Buffel 2011" Schepen043>>
De Buffel was het eerste, volledig op stoom voortgestuwde schip van de Marine.<br>
Van 1896 t/m 1973 deed het dienst als logementschip.<br>
Het is nu een [[museumschip in Hellevoetsluis|https://debuffel.nl/]].
{{||$:/_ship_template}}
* <<slider "Kanonneerboten Bulgia en Ever 1918" Schepen388>>
In 1925 omgebouwd tot mijnenlegger.
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Bulgia ca. 1970" Schepen222>>
In 1986 eerst verbouwd en daarna overgedragen aan de havendienst van Den Helder om als instructievaartuig te
dienen bij de opleiding praktisch zeemanschap van het Koninklijk Instituut voor de Marine.<br>
In 1996 geleend aan Zeekadettenkorps Alkmaar.<br>
In 2003 werd de lening omgezet in een schenking.
[[link|https://www.bunkerinfo.nl/2017/01/seefliegerhorst-schellingwoude.html]]
<iframe src='https://www.bunkerinfo.nl/2017/01/seefliegerhorst-schellingwoude.html' frameborder="0" width="1024"; height="600"></iframe>
{{||$:/_ship_template}}
* <<slider "Mijnenveger Bussemaker ca. 1972" Schepen359>>
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Buyskes ca. 1990" Schepen208>>
* <<slider "Opnemingsvaartuig Buyskes ca. 1990" Schepen269>>
2004 naar Letland als ''Varonis''.
{{||$:/_ship_template}}
* <<slider "Mijnenveger C ca. 1936" Schepen160>>
{{||$:/_ship_template}}
* <<slider "Fregat Callenburgh ca. 1986" Schepen470>>
Na de uitdienstname werd de Callenburgh verkocht aan Griekenland.<br>
Bij de Griekse marine is het schip op 30 maart 1994 in dienst genomen als ''Adrias'' (F459).
//Bron: Wikipedia,// https://en.wikipedia.org/wiki/Camille_Alphonse_Faure
Camille Alphonse Faure (Vizille, 21 mei 1840 – 1898) was een Franse chemische ingenieur die in 1881 de door Gaston Planté in 1865 uitgevonden loodzwavelzuuraccu verbeterde.<br>
De verbeteringen betroffen vooral de capaciteit en leidden tot het gebruik op industriële schaal.
!!!Levensloop
Camille Alphonse Faure studeerde aan de 'Ecole des Arts et Métiers at Aix'.<br>
Van 1874 tot ongeveer 1880 werkte hij als chemicus bij de nieuwe fabriek van de 'Cotton Powder Company' te Uplees, Faversham, Kent in Engeland.<br>
Samen met de bedrijfsleider George Trench While patenteerde hij in 1874 een nieuw explosief ('Tonite') en verbeterde in 1878 de ontsteker voor dynamiet.<br>
In 1880 patenteerde Faure een methode om loodplaten met een papje van loodoxide, zwavelzuur en water te bedekken en dat zodanig op te warmen dat het papje veranderde in een mengsel van loodsulfaten dat zich aan de loodplaten hechtte. Tijdens het opladen werd dan het electrochemisch actieve materiaal gevormd.<br>
Door deze methode werd de capaciteit t.o.v. Planté's accu behoorlijk vergroot. Deze doorbraak leidde tot industriële productie van loodzwavelzuuraccu's.<br>
Tegen het einde van zijn leven verkreeg hij nog meer patenten o.a. voor productie van aluminiumlegeringen, verbeteringen aan heteluchtmotoren en stuurmechanismen voor voertuigen.
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Buchanan (later Campbeltown) 1936" Schepen209>>
* <<slider "Torpedobootjager Campbeltown 1941" Schepen210>>
Gebouwd als Wickes-klasse torpedobootjager USS Buchanan (DD-131). In dienst van 1919 - 1939.<br>In 1940 overgedragen aan de Britse marine. In 1941 werd het schip uitgeleend aan de Nederlandse marine. Naam Middelburg werd voorgesteld maar niet geaccepteerd; bleef Campbeltown.<br>
Na de aanschaf van de torpedobootjager [[Tjerk Hiddes (1942)]] en [[Van Galen (1942)]], twee schepen van de N-klasse, werd de Campbeltown, teruggegeven aan de Britse marine.
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Canopus ca. 1928" Schepen395>>
{{NI}} Stationsschip te Tandjong Pinang in de Riouw Archipel, net onder Singapore. Na de militarisering van de Gouvernements Marine werd de Canopus tijdelijk gestationeerd in Koepang, de hoofdstad van Nederlands Timor.<br>
Was ook betrokken bij de 'bezetting' van (Portugees) Timor na de Japanse aanval op Pearl Harbor.<br>
De Canopus bleef daarna nog enige tijd stationschip in Koepang en fungeerde tevens als moederschip voor vliegboten.<br>
Op 3 februari 1942 moest Hr. Ms. Canopus uitwijken naar Tjilatjap omdat de Japanners geland waren op Timor en omdat het schip tijdens een bombardement enige schade had opgelopen. Op 5 maart 1942 werd de Canopus te Tjilatjap getroffen door een Japanse bom, brandde uit en zonk.
! [[Capital ships & Monitors]]
!! Captial ships
<br>
# ''Schorpioen'' turret rams (1868)
#* [[Schorpioen (1868)]]
#* [[Stier (1868)]]
# ''Evertsen'' coast defence ships (1895-1896)
#* [[Evertsen (1896)]]
#* [[Piet Hein (1896)]]
#* [[Kortenaer (1895)]]
# ''Koningin Regentes'' coast defence ships (1901-1904)
#* [[Koningin Regentes (1902)]]
#* [[De Ruyter (1902)]]
#* [[Hertog Hendrik (1904)]], 8/1939- Vliereede
# [[Marten Harpertsz. Tromp (1906)]] coast defence ship (1905)
# [[Jacob van Heemskerck (1908)]] coast defence ship (1908)
# [[De Zeven Provinciën (1910)]] coast defence ship (1910) 1936- Soerabaja
!! Monitors
<br>
# ''Heiligerlee'' monitors (1868)
#* [[Heiligerlee (1868)]], ex-Panter)
#* [[Krokodil (1870)]]
#* [[Tijger (1869)]]
# ''Bloedhond'' monitors (1870)
#* [[Bloedhond (1870)]]
#* [[Cerberus (1870)]]
# ''Adder'' monitors (1871-1878)
#* [[Adder (1875)]]
#* [[Haai (1872)]]
#* [[Hyena (1874)]]
#* [[Luipaard (1888)]]
#* [[Panter (1870)]]
#* [[Wesp (1872)]]
# [[Draak (1878)]] monitor
# [[Matador (1879)]] monitor
# [[Reinier Claeszen (1894)]] monitor
ex IJM 26 (1930).<br>In de meidagen van 1940 kon de Caroline ontkomen naar Engeland waar het vissersschip werd gevorderd. Na in Falmouth ingericht te zijn als hulpmijnenveger werd het schip op 20 juni in dienst gesteld en nam het schip deel aan veegoperaties in Britse wateren. In april 1941 werd de Caroline uitgerust met een experimenteel tuig tegen akoestische mijnen. Op 28 april was de Caroline actief in de baai van Milford Haven en had die dag reeds zes akoestische mijnen opgeruimd. Door de ontploffing van een zevende mijn, recht onder het schip, werd de Caroline volkomen uit elkaar geslagen. Alle 15 opvarenden kwamen hierbij om het leven.
{{NI}} Het motorschip Castor deed bij de Gouvernements Marine dienst als bebakenings- bergings- en werkschip.<br>
Na de militarisatie in 1939 samen met de [[Pollux (1922)]] gestationeerd te Soerabaja. Aldaar diverse werkzaamheden zoals transporten en het ondersteunen van vliegboten.<br>
Op 2 maart 1942 werd de Castor door de eigen bemanning tot zinken gebracht in het Westervaarwater.
<<tabs "[[Info PH-PBY]] [[SNA - Catalina PH-PBY]] [[Stichting Exploitatie Catalina PH-PBY]] [[Nieuws PH-PBY]] [[PH-PBY voorgoed vertrokken]]" "">>
!! Catalina types/aantallen bij MLD
|Fabrikant |Type |Aantal |Opmerkingen |h
|Consolidated |PBY-5| 45|vliegboot|
|Consolidated |PBY-5A| 24|amfibievliegboot|
|Boeing Canada |PB2B-1| 12|vliegboot|
|Boeing Canada |PB2B-2| 4|vliegboot (gewijzigde staart)|
|||||
|''Totaal aantal''|<| ''85''||
<<<
''N.B.:''<br>US Navy aanduiding: ''PB'' = Patrol Bomber, ''Y'' = fabrikant Consolidated => ''PBY''<br>
Fabrikant Boeing Canada = ''2B'' (er was al een B) => ''PB2B''
<<<
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Ceram ca. 1907" Schepen283>>
{{||$:/_ship_template}}
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen421>>
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen431>>
* <<slider "Hulpmijnenveger Ceram ca. 1941" Schepen422>>
In 1938 werd de Ceram gestationeerd in Menado, Noord-Celebes. Na de militarisering in 1939 werd de Ceram tijdelijk toegewezen aan het schip van de Gouvernements Marine de [[Deneb (1915)]], dat eveneens gestationeerd was te Menado. In mei 1940 werd de politiekruiser omgebouwd en als Hulpmijnenveger 5 (HMV5) in dienst gesteld. Op 2 maart 1942 werd de Ceram door de eigen bemanning tot zinken gebracht in Tandjong Priok.
{{||$:/_ship_template}}
* <<slider "Korvet/mijnenveger Ceram 1947" Schepen161>>
Australisch korvet/mijnenveger ''Burnie'' (J198). Vanaf 1946 bij Nederlandse marine.
{{NI}}<br>
{{Bathurst}}<br>
In 1957 in gebruik genomen als logementschip.
{{||$:/_ship_template}}
* <<slider "Monitor Cerberus 1894" Schepen302>>
* <<slider "Monitor Cerberus 1894" Schepen303>>
* <<slider "Doorsnedes monitoren ca. 1870" Schepen170>>
{{||$:/_ship_template}}
* <<slider "Cerberus 1888" Schepen077>>
{{NI}}<br>In 1888 werd op de scheepswerf van Koninklijke Maatschappij 'De Schelde' een torpedoboot (Cerberus) gebouwd voor de Nederlandse Marine, bestemd voor Nederlands-Indië.<br>
In oktober van het zelfde jaar installeerde Willem Smit een felle elektrische booglamp waarmee men een zicht had van 1500 meter. De lamp werd aangedreven door een (stoom)dynamo ook fabricaat Willem Smit. Daarnaast werd ook de complete elektrische verlichting door Willem aangelegd.<br>
Hiermee was de Cerberus de eerste torpedoboot van de Nederlandse Marine met elektrische verlichting.<br>
Hoewel [[Navypedia|http://www.navypedia.org/ships/netherlands/nl_dd_cerberus.htm]] de Cerberus als een aparte klasse beschouwt wordt hij gewoonlijk tot de Ardjoeno-klasse gerekend (valt binnen de marges in de Ardjoeno-klasse).<br>
Er was in 1888 ook nog een monitor Cerberus! Echter geen naamsverandering kunnen vinden.
{{||$:/_ship_template}}
* <<slider "Nettenwerkschip Cerberus ca. 1960" Schepen260>>
Verkregen via <<popup MDAP MDAP>><br>Het het eerste Amerikaanse oorlogsschip (US: AN 93) dat na de afbouw direct aan een NAVO-land werd overgedragen zonder eerst de Amerikaanse vlag te hebben gevoerd.<br>
Dit nettenwerkschip werd in 1961 verbouwd tot duikwerkschip.<br>
In 1970 aan USA teruggegeven.
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Cerberus 2004" Schepen326>>
Duikvaartuig, platbodem zeer geschikt voor ondiepe wateren, maar mag tot 48 mijl uit de kust komen.<br>
[img[Jeantaud|Images/jeantaud.jpg]]<br>
//Jeantaud//
\define llinks(filter)
<$list filter="$filter$">
<$link to={{!!title}}>
<$view field="title"/>
</$link> 
<$view field="tags"/>
<br>
</$list>
\end
|Schepen|<|h
|Schepen#   Tags|tag `scheepsfoto` or `walvisvaart`|
|<<llinks "[prefix[Schepen]sort[]] -[[Schepen volgens pennantnummer]] -[[Schepen op datum]] -[[Schepen op naam]]">>|<$transclude tiddler="Check schepen 2" mode="block"/>|
<$list filter="[tag[scheepsfoto]] [tag[walvisvaart]] +[sort[title]]"/>
<$list filter="[tag[schipdata]] -$:/_ship_details_template +[sort[title]]"/>
\define llinks(filter)
<$list filter="$filter$">
<$link to={{!!title}}>
<$view field="title"/>
</$link> 
<$view field="tags"/>
<br>
</$list>
\end
!! Tiddlers gebaseerd op $:/_ship_template zonder de tag `schipdata`
!!!! Schip       Tag
<<llinks "[!is[system]search[$:/_ship_template]] -[tag[schipdata]] -[[Check schepen 4]]">>
\define flinks(filter)
<$list filter="$filter$">
<tr>
<td><$link to={{!!title}}>
<$view field="title"/>
</$link>
</td>
<td>
<$view field="soort"/>
</td>
<td>
<$view field="per"/>
</td>
</tr>
</$list>
\end
<style>
th {
text-align: left;
}
</style>
!! Marineschepen zonder foto
<table>
<tr>
<th>Naam schip </th>
<th>Soort schip </th>
<th>Dienstperiode </th>
</tr>
<<flinks "[tag[schipdata]] +[!search:text[slider]] -$:/_ship_details_template +[!sort[per]]">>
</table>
\define llinks(filter)
<$list filter="$filter$">
<$link to={{!!title}}>
<$view field="title"/>
</$link>
<$view field="tags"/>
<br>
</$list>
\end
|Vliegtuigen|<|h
|Vliegtuig# Tags|tag `vliegtuigfoto`|
|<<llinks "[prefix[Vliegtuig]sort[]] -[[Vliegtuigfoto button]] -Vliegtuigfoto">>|<$transclude tiddler="Check vliegtuigen 2" mode="block"/>|
<$list filter="[tag[vliegtuigfoto]sort[]]"/>
\define llinks(filter)
<$list filter="$filter$">
<$link to={{!!title}}>
<$view field="title"/>
</$link> 
<$view field="tags"/>
<br>
</$list>
\end
!! Tiddlers gebaseerd op $:/_plane_template zonder de tag `vliegtuigdata`
!!!! Vliegtuig       Tag
<<llinks "[!is[system]search[$:/_plane_template]] -[tag[vliegtuigdata]] -[[Check vliegtuigen 3]]">>
{{||$:/_ship_template}}
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen421>>
* <<slider "Hulpmijnenvegers ABC-klasse 1941" Schepen431>>
Dit gewestelijke vaartuig werd in mei 1940 omgebouwd tot Hulpmijnenveger 6 (HMV6). Op 2 maart 1942 werd de Cheribon door de eigen bemanning tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider " Mijnenveger Chömpff ca. 1972" Schepen360>>
1921 Conversie tot rivierkanonneerboot.
!! Cijfers van ATAX
Gijs Mom heeft een boek geschreven over de geschiedenis van de elektrische auto: <<popup "The electric vehicle: technology and expectations in the automobile age" "Gijs Mom">>.<br>
Het boek is - gedeeltelijk - in te zien bij [[Google books|https://books.google.nl/books?id=5689qa8vrLQC&printsec=frontcover#v=onepage&q&f=false]].<br>
Gijs Mom kon in de archieven van de ATAX duiken en daaruit interessant cijfermateriaal halen van directeur J.E. Friderichs.<br>
Enkele interessante grafieken/tabellen uit een andere publicatie van Gijs Mom worden hieronder gegeven (de kwaliteit van de grafieken uit het e-boek was te slecht om hier te tonen).<br>
Opmerkelijk - ten minste voor mij - was dat de kosten voor elektrische taxi's altijd hoger geweest zijn dan voor benzine taxi's.<br>
De betrouwbaarheid van benzine taxi's liet echter in het begin te wensen over (zie ook de proef met een [ext[autobus in 1908|Amsterdam_1822-heden.html#Autobus]] in de 'Hugo de Grootbuurt' wiki). Dat was een belangrijke reden om in het begin voor elektrische aandrijving te kiezen.
<<tabs "
[[ATAX01]]
[[ATAX02]]
[[ATAX03]]
[[ATAX04]]
[[ATAX05]]
[[ATAX06]]
[[ATAX07]]
[[ATAX08]]
[[ATAX09]]
[[ATAX10]]
[[ATAX11]]
[[ATAX12]]
" "
[[ATAX01]]
" "" "
tc-vertical
">>
In 1939 werd de sleepboot Ciska in Nederlands-Indië gevorderd en aangepast tot boeienschip. Daarna werd het schip opnieuw aangepast en op 18 oktober 1939 als Hulpmijnenveger 16 (HMV16) in dienst gesteld. Op 2 maart 1942 werd de omgebouwde sleepboot op het Marine Etablissement te Soerabaja door de eigen bemanning tot zinken gebracht. De Japanners hebben het schip gelicht en gedurende de oorlog gebruikt als sleepboot. Eind 1945 werd de sleepboot zwaar beschadigd teruggevonden in Tandjong Priok. Nadat het hersteld was, werd het teruggegeven aan de oorspronkelijke eigenaar.
ex RO 46 (1933).<br>Op 2 april 1940 werd de trawler gevorderd, verbouwd en als Hulpmijnenveger 7 in dienst gesteld. Op 14 mei 1940 week het schip uit naar Engelanden nam daar deel aan veegoperaties in Britse wateren totdat het op 4 oktober 1941 naar Nederlands West-Indië werd gestuurd om patrouillediensten te verrichten. In maart 1945 keerde het schip terug naar Engeland en na de bevrijding van Nederland, op 5 mei van dat jaar, kwam het naar huis. In 1946 is de trawler teruggeven aan de oorspronkelijke eigenaar.
! [[Coastal forces]]
!! Motor torpedo boats
# TM I motor torpedo boats (1927-1928)
#* [[TMI (1929)]]
#* [[TMII (1929)]]
#* [[TMIII (1929)]]
#* [[TMIV (1929)]]
# [[TMIII (1938)]] motor torpedo boat (1938)
# TM51 motor torpedo boats (1939)
#* TM51-53 [[TM51 (1939)]]
#* TM62-69
# TM4 motor torpedo boats (1940-1942)
#* TM4-21 (1940-1942)
# TM22 motor torpedo boats (1942-1943)
#* TM22-37 (1942-1943)
# TM54 motor torpedo boats
#* ~~TM54-61~~
# MTB202 KEMPHAAN motor torpedo boats (1942/1942, 1942)
#* [[MTB202 (1943)]] Kemphaan
#* [[MTB203 (1942)]] Arend
#* [[MTB204 (1942)]] Valk
# MTB222 SPERWER motor torpedo boats (1942, 1942/1942-1943)
#* [[MTB222 (1942)]] Sperwer
#* [[MTB229 (1943)]] Gier
#* [[MTB231 (1943)]] Stormvogel
#* [[MTB235 (1942)]] Sperwer (vervanging MTB222)
#* [[MTB236 (1943)]] Havik
#* [[MTB240 (1942)]] Buizerd
# MTB418 motor torpedo boats (1942-1944/1944)
#* [[MTB418 (1944)]] (ex-MGB81)
#* [[MTB432 (1944)]] (ex-MGB109)
#* [[MTB433 (1943)]] (ex-MGB114), 1948- RJ2, 1951- Jachthond, 1953- P884 Jachthond;
#* [[MTB436 (1944)]] (ex-MGB112)
#* [[MTB437 (1944)]] (ex-MGB113)
!! Motor anti-submarine boats
# OJR1 submarine chasers (1941-1942)
#* OJR1-6 (1941-1942)
#* H7-8 (1942)
# B1 submarine chasers
#* ~~B1-16~~
!! Motor launches
# P1 motor launches (1939-1940)
#* P1-8 (1939-1940)
# P9 motor launches (1940-1941)
#* P9-16 (1940-1941)
# S1 motor launches (1941)
#* S1-2 (1941)
# P17 motor launches (1941-1942)
#* P17-22 (1941-1942)
# S3 motor launches (1942)
# S3-6 (1942)
# P37 motor launches (1942)
#* P37-40 (1942)
# ML143 motor launches (1940-1941/1945-1947)
#* RI1 (ex-ML136), 1950- Y861, 1953- P861
#* MV42 (ex-ML138)
#* ML143
#* ML161
#* ML162
#* ML164
#* RI2 (ex-ML181), 1950- Y862, 1953- P862
#* ML260
# RP101 motor launches (1943-1945/1945-1947)
#* ML1407, 1409
#* RP101 Vos (ex-ML1479), 1950- P821
#* RP102 Lynx (ex-ML1260), 1950- P822
#* RP103 Jaguar (ex-ML1470), 1950- P823
#* RP104 Keeten (ex-ML1337), 1956- Y8128
#* RP105 Mastgat (ex-FDB35, ex-ML1400), 1956- Y8129
#* RP106 Zijpe (ex-ML1483), 1956- Y8130
#* RP107 Fret (ex-FDB38, ex-ML1489), 1950- P824
#* RP108 Otter (ex-FDB39, ex-ML1493), 1950- P825
#* RP109 Wolf (ex-FDB22, ex-ML1451)
#* RP110 Bever (ex-FDB12, ex-ML1453)
#* RP111 Marter (ex-FDB13, ex-ML1472)
#* RP112 Wezel (ex-FDB14, ex-ML1473)
#* RP113 Dingo (ex-FDB11, ex-ML1450)
#* RP114 Luipaard (ex-FDB24, ex-ML1454)
#* RP115 Bizon (ex-FDB27, ex-ML1475)
#* RP116 Leeuw (ex-FDB26, ex-ML1474)
#* RP117 Poema (ex-FDB15, ex-ML1440)
#* RP118 Tijger (ex-FDB32, ex-ML1449)
{{||$:/_plane_template}}
* <<slider "Consolidated PBY-5 1941" Vliegtuig160>>
* <<slider "Consolidated PBY-5 ca.1940" Vliegtuig093>>
Pure vliegboot i.t.t. amfibische [[PBY-5A|Consolidated PBY-5A]]
{{||$:/_plane_template}}
* <<slider "PBY-5A Catalina ca. 1953" Vliegtuig094>>
* <<slider "PBY-5A Catalina ca. 1954" Vliegtuig003>>
* <<slider "PBY-5A Catalina ca. 2005" Vliegtuig001>>
* <<slider "PBY-5A Catalina ca. 2015" Vliegtuig004>>
* <<slider "PBY-5A Catalina ca. 2015" Vliegtuig022>>
Amfibische uitvoering van PBY-5
!! Consolidated
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[PBY-5|Consolidated PBY-5]] |{{Consolidated PBY-5!!soort}} | 57|zie hieronder | {{Consolidated PBY-5!!per}} |
|[[PBY-5A|Consolidated PBY-5A]] |{{Consolidated PBY-5A!!soort}} | 28|zie hieronder | {{Consolidated PBY-5A!!per}} |
* <<slider "Catalina types/aantallen" "Catalina types/aantallen">>
* <<slider "Registratiegegevens Catalina" "Registratiegegevens Catalina's">>
* <<slider "Catalina PH-PBY" "Catalina PH-PBY">>
In 1933 werden Consolidated, Martin en Douglas gecontracteerd om een prototype van een patrouillebommenwerper te maken.
!!! Background
The PBY was originally designed to be a patrol bomber, an aircraft with a long operational range intended to locate and attack enemy transport ships at sea in order to disrupt enemy supply lines. With a mind to a potential conflict in the Pacific Ocean, where troops would require resupply over great distances, the U.S. Navy in the 1930s invested millions of dollars in developing long-range flying boats for this purpose. Flying boats had the advantage of not requiring runways, in effect having the entire ocean available. Several different flying boats were adopted by the Navy, but the PBY was the most widely used and produced.
<<<
During World War II, PBYs were used in anti-submarine warfare, patrol bombing, convoy escort, search and rescue missions (especially air-sea rescue), and cargo transport. The PBY was the most numerous aircraft of its kind and the last active military PBYs were not retired from service until the 1980s.
<<<
Although slow and ungainly, Catalinas distinguished themselves in World War II. Allied forces used them successfully in a wide variety of roles for which the aircraft was never intended. PBYs are remembered for their rescue role, in which they saved the lives of thousands of aircrew downed over water. Catalina airmen called their aircraft the "Cat" on combat missions and "Dumbo" in air-sea rescue service.[4]
!!! Development
As American dominance in the Pacific Ocean began to face competition from Japan in the 1930s, the U.S. Navy contracted Consolidated, Martin and Douglas in October 1933 to build competing prototypes for a patrol flying boat.[5] Naval doctrine of the 1930s and 1940s used flying boats in a wide variety of roles that today are handled by multiple special-purpose aircraft. The U.S. Navy had adopted the Consolidated P2Y and Martin P3M models for this role in 1931, but both aircraft were underpowered and hampered by inadequate range and limited payloads.
Consolidated and Douglas both delivered single prototypes of their new designs, the XP3Y-1 and XP3D-1, respectively. Consolidated's XP3Y-1 was an evolution of the XPY-1 design that had originally competed unsuccessfully for the P3M contract two years earlier and of the XP2Y design that the Navy had authorized for a limited production run. Although the Douglas aircraft was a good design, the Navy opted for Consolidated's because the projected cost was only $90,000 per aircraft.
Consolidated's XP3Y-1 design (company Model 28) had a parasol wing with external bracing struts, mounted on a pylon over the fuselage. Wingtip stabilizing floats were retractable in flight to form streamlined wingtips and had been licensed from the Saunders-Roe company. The two-step hull design was similar to that of the P2Y, but the Model 28 had a cantilever cruciform tail unit instead of a strut-braced twin tail. Cleaner aerodynamics gave the Model 28 better performance than earlier designs. Construction is all-metal, stressed-skin, of aluminum sheet, except the ailerons and wing trailing edge, which are fabric covered.[6]
The prototype was powered by two 825 hp (615 kW) Pratt & Whitney R-1830-54 Twin Wasp radial engines mounted on the wing’s leading edges. Armament comprised four .30 in (7.6 mm) Browning AN/M2 machine guns and up to 2,000 lb (910 kg) of bombs.
The XP3Y-1 had its maiden flight on 28 March 1935, after which it was transferred to the U.S. Navy for service trials. The XP3Y-1 was a significant performance improvement over previous patrol flying boats. The Navy requested further development in order to bring the aircraft into the category of patrol bomber, and in October 1935, the prototype was returned to Consolidated for further work, including installation of 900 hp (670 kW) R-1830-64 engines. For the redesignated XPBY-1, Consolidated introduced redesigned vertical tail surfaces which resolved a problem with the tail becoming submerged on takeoff, which had made lift-off impossible under some conditions. The XPBY-1 had its maiden flight on 19 May 1936, during which a record non-stop distance flight of 3,443 mi (2,992 nmi; 5,541 km) was achieved.
The XPBY-1 was delivered to VP-11F in October 1936. The second squadron to be equipped was VP-12, which received the first of its aircraft in early 1937. The second production order was placed on 25 July 1936. Over the next three years, the design was gradually developed further and successive models introduced.
The aircraft eventually bore the name Catalina after Catalina Island; the name was coined in November 1941, as Great Britain ordered their first 30 aircraft.[7]
! [[Converted merchant vessels]]
!! Patrols
# auxiliary fishery protection vessels before WWI
#* `Bergingsvaartuig (1910)` 1910-1914
#* [[Cornelis Drebbel (1915)]] 1913-1915
#* [[Dolfijn (1889)]] 1889-1921
#* [[Zeehond (1892)]] 1892-1926
# auxiliary patrols of WWII
#* BV36 (ex-Indus) (, 449, 1940 - 1940)
!! Mine warfare ships
# auxiliary minelayers of WWI (trawlwers)
#* [[Triton (1914)]] (ex-Onze Trawler)
#* [[Vulcanus (1917)]] (ex-Azalia)
#* [[Hercules (1919)]] ex sleepboot
# auxiliary minelayers of WWII (sleepboten)
#* Bangkalan (ex-Hydrograaf, ex-Willem van Braam) (1926) -1942
#* Soemenep (ex-Zoutregie) (1930) -1942
# auxiliary minesweepers of WWII (trawlers)
#* [[Alkmaar (1939)]] (1914, 310, 1939 - ?/5/1940)
#* [[Alma (1940)]] (1915, 206, 1940 - 1943)
#* [[Andijk (1939)]] (Amsterdam) (1913, 241, 1940 - 1943)
#* [[Aneta (1939)]] (1916, 261, 1939 - ?/5/1940)
#* [[Antje (1940)]] (1931, 183, 4/1940 - 1940)
#* [[Azimuth (1939)]] (1911, 229, 1939 - ?/5/1940)
#* [[Bergen (1940)]] (1907, 236, 1940 - 1942)
#* [[Bloemendaal (1939)]] (1917, 242, 1940 - 1943)
#* [[Bruinvisch (1941)]] (1929, 164, 1941 - 1943)
#* `Caroline (1941)` (1930, 253, 1940 - 28/4/1941)
#* [[Claesje (1940)]] (1933, 229, 3/1940 - 1946)
#* [[Dirkje (1940)]] (1934, 233, 3/1940 - 1946)
#* [[Dolfijn (1941)]], 1943- [[Goeree (1942)]] (1920, 168, 1941 - 1945)
#* [[En Avant (1939)]] (1911, 264, 1939 - 1945)
#* [[Eveline (1940)]] (1912, 206, 1940 - 27/1/1942)
#* [[Ewald (1939)]] (1912, 209, 1939 - 1945)
#* [[Gerberdina Johanna (1940)]] (1912, 255, 1940 - 1947)
#* [[Hercules (1940)]] (1905, 255, 1940 - 1942)
#* [[Hollandia (1939)]] (1917, 220, 1939 - /5/1940)
#* [[Isabel (1941)]] (1906, 166, 1941 - 1944)
#* [[Jaqueline Clasine (1940)]] (1906, 206, 1941 - 1943)
#* `Libra` (1908, 233, 1940 - 1943)
#* [[Limburgia (1940)]] (, 217, 1940 - ?/5/1940)
#* [[Maria Elizabeth (1941)]] (1914, 310, 1941 - 1945)
#* [[Maria R. Ommering (1939)]] (1914, 216, 1939 - 1943)
#* [[Maria van Hattum (1940)]] (1925, 293, 1940 - ?/5/1940)
#* [[Noordsvaarder (1939)]] (1897, 179, 1939 - 1947)
#* [[Rotterdam (1939)]] (1916, 231, 1939 - 1943)
#* [[Uiver (1940)]] (1902, 216, 1940 - 1942)
#* [[Vikingbank (1940)]] (1927, 335, 1940 - 1946)
#* [[Walrus (1939)]] (1929, 372, 1939 - ?/5/1940)
#* [[Witte Zee (1939)]] (, 226, 1939 - ?/5/1940)
#* [[Zwarte Zee (1940)]], 1941- [[IJmuiden (1941)]] (1899, 194, 1941 - 1942)
#* Enen (1929, 257, 1 x 1 - 76/40, 7/1940 - 8/1945)
#* Femern (1930, 257, 1 x 1 - 76/40, 7/1940 - 8/1945)
#* Toern (1932, 257, 1 x 1 - 76/40, 7/1940 - 8/1945)
#* Jean Frederic (1919, 329, 11/1940 - 1/5/1941)
#* Notre-Dame de France (1931, 433, 11/1940 - 1/1942)
|Schip |Foto |©|opmerkingen|h
|Mijnenjager Urk (1986) (M858) te Zeebrugge, 2009.|[[Schepen192]]|?||
|Pantserschip / ramtorenschip Buffel (1868) (1868-1896) als museumschip bij het Maritiem Museum te Rotterdam, 2008.|[[Schepen042]]|?||
|Duikvaartuig Argus (1992) (A853), 2006.|[[Schepen212]]|?||
|Opleidingsschip Urania (2004) (Y8050), ca. 2004.|[[Schepen204]]|?||
|Ondersteuningsschip Pelikaan (1990) (A801), ca. 2000.|[[Schepen195]]|?|kleinere versie bij [[link|https://onzevloot.weebly.com/pelikaan-a-801.html]]|
|Bevoorrader Zuiderkruis (1975) (A832) geflankeerd door de fregatten Van Speijk (1995) (F828, onder) en Willem van der Zaan (1991) (F829, boven), 1997.|[[Schepen213]]|?||
|Oceanografisch onderzoeksvaartuig Tydeman (1976) (A905), geflankeerd door de opnemingsschepen Blommendal (1973) (A905) en Buyskes (1973) (A904), ca. 1990.|[[Schepen269]]|?||
|Bevoorrader Zuiderkruis (1975) (A832) geflankeerd door de fregatten De Ruyter (1976) (F806, boven) en Piet Hein (1981) (F811, onder), ca. 1990.|[[Schepen214]]|?||
|Oceanografisch onderzoeksvaartuig Tydeman (1976) (A905), geflankeerd door opnemingsschepen de Blommendal (1973) (A905) en Buyskes (1973) (A904), ca. 1990.|[[Schepen208]]|?||
|Ondersteuningsschip Dokkum (1955) (Y8001), 1986.|[[Schepen239]]|?||
|Torpedowerkschip Mercuur (1973) (A856), ex Onverschrokken (1954), 1983.|[[Schepen218]]|?||
|Ondersteuningsschip Poolster (1964) (A835), ca. 1980.|[[Schepen203]]|?||
|Duikboten Zwaardvis (1972) (S806, voor) en Tijgerhaai (1972) S807, achter), ca. 1975.|[[Schepen174]]|?||
|Fregat Wolf (1954) (F817) bij de hashkotter Lammie (HD160), 1974.|[[Schepen225]]|?||
|(Ondiepwater)mijnenveger Van Well Groeneveld (1961) (M875), ca. 1972.|[[Schepen189]]|?||
|Duikvaartuig Triton (1964) (A848), 1971.|[[Schepen262]]|?||
|Onderzeebootjager Holland (1954) (D808) tijdens een bevoorrading op zee, ca. 1970.|[[Schepen223]]|?||
|Duikboten Dolfijn (1960) (S808, links) en Potvis (1965) (S804, rechts) te Barcelona, 1967.|[[Schepen188]]|?||
|Hellevoetsluis met duikvaartuig Nautilus (1965) (A849), 1965.|[[Schepen263]]|?||
|Fregat De Bitter (1950) (F807), 1964.|[[Schepen229]]|?||
|Kruiser De Ruyter (1953) (C801), ca. 1963.|[[Schepen228]]|?||
|Vliegdekschip Karel Doorman (1948) (R 81), ca. 1960.|[[Schepen067]]|?||
|Nettenwerkschip Cerberus (1952) (A895), ca. 1960.|[[Schepen260]]|?||
|Fregat Dubois (1950) (F809), ca. 1960.|[[Schepen230]]|?||
|Mijnenveger Aalsmeer (1956) (M811), ca. 1960|[[Schepen219]]|?||
|Mijnenveger Onvermoeid (1955) (A857), ca. 1960.|[[Schepen217]]|?||
|Opnemingsvaartuig Zeefakkel (1951) (A903), ca. 1960|[[Schepen216]]|?||
|Opnemingsvaartuig Snellius (1952) (A907), ca. 1960.|[[Schepen198]]|?||
|Fregat Lynx (1956) (F823), 1959.|[[Schepen221]]|?||
|Kanonneerboot Van Speijk (1946) (F805), 1959.|[[Schepen112]]|?||
|Torpedobootjager Piet Hein (1945), ca. 1958.|[[Schepen120]]|?||
|Mijnenveger Dokkum (1955) (M801) bij de officiële ingebruikname, 1955.|[[Schepen084]]|?||
|Fregat Marnix (1947) (F801), ca. 1955.|[[Schepen232]]|?||
|Kruiser De Ruyter (1953) (C801) tijdens de z.g. garantievaart, 1954.|[[Schepen227]]|?||
|Fregat Fret (1954) (F818) bij de overdracht in de USA.|[[Schepen224]]|?||
|Mijnenveger Terschelling (1943) (M866), ca. 1954|[[Schepen158]]|?||
|Onderzeeboot Zeehond (1944) (ex-Britse Tapir), 1953.|[[Schepen108]]|?||
|Escorteschip Johan Maurits van Nassau (1943) (F802), ca. 1952.|[[Schepen236]]|?||
|Ondersteuningsschip Woendi (1946) (A832) te Sorong, Nieuw-Guinea, 1950.|[[Schepen261]]|?||
|(Ondiepwater)mijnenveger Urk (1947) (M876), ca. 1950.|[[Schepen193]]|?||
|Onderzeeboot Dolfijn (1948), ca. 1950.|[[Schepen140]]|?||
|Mijnenveger Overflakkee (1944) (MV14/M822), ca. 1948.|[[Schepen234]]|?||
|Torpedobootjager Marnix (1947) arriveert in Amsterdam, 5-1-1948.|[[Schepen231]]|?||
|Escorteschip/patrouilleschip Queen Wilhelmina (1942), 1948.|[[Schepen171]]|?||
|Fregat/mijnenveger Ceram (1946), ter gelegenheid van de installatie van de federale raad van Oost-Borneo gepavoiseerd.|[[Schepen161]]|?||
|Mijnenveger Borndiep (1946), ca. 1946.|[[Schepen169]]|?||
|Kruiser Tromp (1938), 1946.|[[Schepen142]]|?||
|Kruiser Jacob van Heemskerck (1940), 1946|[[Schepen113]]|?||
|Torpedobootjager Piet Hein (1945) (ex-Britse Serapis) nog met Britse registratie maar wel met Nederlandse vlag, 1945.|[[Schepen121]]|?||
|Kruiser Tromp (1938), 1945.|[[Schepen117]]|?||
|Escortschip Jan van Brakel (1936) (M80), ca. 1944.|[[Schepen241]]|?||
|Onderzeeboot Zeehond (1943) (ex-Britse Sturgeon), ca. 1944.|[[Schepen107]]|?||
|Kruiser De Ruyter (1936), 1942.|[[Schepen076]]|?||
|Korvet (nog Britse) Carnation, later in 1943 [[Friso (1943)]], ca. 1942.|[[Schepen172]]|?||
|Onderzeeboot Dolfijn (1942) in een buitenlandse haven, 1942.|[[Schepen105]]|?||
|Torpedobootjager Isaac Sweers (1941) (G83), 1941.|[[Schepen238]]|?||
|Mijnenveger Abraham Crijnssen (1937), ca. 1941.|[[Schepen168]]|?||
|Tewaterlating onderzeebootO24 (1940), 18 maart 1940.|[[Schepen058]]|?||
|Mijnenlegger Willem van der Zaan (1939), 1939.|[[Schepen083]]|?||
|Onderzeeboot O16 (1936), 1939.|[[Schepen056]]|?||
|Overdracht van de onderzeeboot O20 (1939) aan de Nederlandse marine. Schiedam, 1939.|[[Schepen036]]|?||
|Rotterdam, onderzeeboten O13 (1931), O11 (1926) en O15 (1932), 1938.|[[Schepen063]]|?||
|Mijnenlegger [[Van Meerlant (1922)]], ca. 1938.|[[Schepen148]]|?||
|Mijnenvegers [[Abraham van der Hulst (1937)]] (H), [[Jan van Gelder (1937)]] (G) en - waarschijnlijk - [[Pieter Florisz (1937)]] (F), 1938.|[[Schepen013]]|?||
|Pantserdekschip Gelderland (1900), 1937.|[[Schepen069]]|?||
|Mijnenlegger Jan van Brakel (1936), ca. 1937.|[[Schepen242]]|?||
|Kanonneerboot Johan Maurits van Nassau (1933) te Willemstad - Curacao, 1937.|[[Schepen235]]|?||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
|||||
{{||$:/_ship_template}}
* <<slider "Logements- en depotschip Cornelis Drebbel ca. 1925" Schepen389>>
* <<slider "Logements- en depotschip Cornelis Drebbel ca. 1928" Schepen365>>
* <<slider "V.l.n.r. Cornelis Drebbel, Zeehond en Potvis 1971" Schepen366>>
De Cornelis Drebbel was als logements- en depotschip gebouwd voor de Onderzeedienst in Vlissingen (1915-1924).<br>In september 1924 vertrok de Cornelis Drebbel binnendoor naar Den Helder omdat het schip niet zeewaardig was. In Den Helder werd het schip gemoderniseerd; vanaf 1924 als logementsschip voor de Onderzeedienst in Den Helder.
Op 14 mei 1940 viel de Cornelis Drebbel onbeschadigd in Duitse handen. Na de bezettingsperiode werd het schip teruggevonden, verbouwd en als accommodatieschip gebruikt voor de Mijnenveegdienst te IJmuiden. Tot 30 november 1971 werd de Cornelis Drebbel als logementsschip ingezet ten behoeve van de Mijnendienst en de Onderzeedienst in Den Helder, Amsterdam en Rotterdam en in Schiedam, t.b.v. de bemanning van het vliegkampschip Karel Doorman (17-5-1955 tot 9-1957).<br><br>
''N.B.:'' De Cornelis Drebbel was een van de eerste marineschepen met een dieselmotor i.p.v een stoommachine; vanaf 1924 echter motorloos.
{{||$:/_ship_template}}
* <<slider "Torpedoboot Cornelis Janssen de Haan 1906" Schepen426>>
! [[Cruisers]]
!! Corvettes, protected and light cruisers
<br>
# [[Sumatra (1891)]] protected cruiser
# [[Koningin Wilhelmina der Nederlanden (1894)]] protected cruiser
# ''Holland'' protected cruisers (1898-1900)
#* [[Holland (1898)]]
#* [[Zeeland (1898)]]
#* [[Friesland (1898)]]
#* [[Gelderland (1900)]]
#* [[Noordbrabant (1900)]]
#* [[Utrecht (1900)]]
# ''Java'' light cruisers (1925-1926)
#* [[Java (1925)]]
#* [[Sumatra (1926)]]
#* ~~Celebes~~ (cancelled)
# [[De Ruyter (1936)]] light cruiser (1936)
# ''Tromp'' light cruisers (1938-1941)
#* [[Tromp (1938)]]
#* [[Jacob van Heemskerck (1940)]]
# ''De Ruyter'' cruisers (1953)
#* [[De Ruyter (1953)]] (ex-De Zeven Provinciën)
#* [[De Zeven Provinciën (1953)]] (ex-Eendracht, ex-Kijkduin)
!! Sloops and unprotected cruisers
<br>
# [[Alkmaar (1874)]] composite-hulled screw sloop
# ''Atjeh'' unprotected cruisers (1877-1887)
#* [[Atjeh (1877)]]
#* [[Tromp (1882)]]
#* [[Koningin Emma der Nederlanden (1880)]] (ex-De Ruyter)
#* [[De Ruyter (1885)]]
#* [[Van Speijk (1887)]]
#* [[Johan Willem Friso (1887)]] (ex-Kortenaer)
# [[Sommelsdijk (1884)]] screw sloop
# [[Java (1886)]] screw sloop
{{||$:/_plane_template}}
* <<slider "Curtiss Felixstowe F.2A 1918" Vliegtuig175>>
* <<slider "Curtiss Felixstowe F.2A 1918" Vliegtuig203>>
{{||$:/_plane_template}}
* <<slider "Curtiss H-12 ca. 1917" Vliegtuig181>>
* <<slider "Curtiss H-12 1918" Vliegtuig204>>
De Britse patrouillevliegboot Curtiss H-12 (8689) werd op het strand bij Noordwijk geïnterneerd en daarna in dienst genomen als L2.
!! Curtiss
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[Felixstowe F.2A|Curtiss Felixstowe F.2A]] |{{Curtiss Felixstowe F.2A!!soort}} | 1| L-1 | {{Curtiss Felixstowe F.2A!!per}} |
|[[H-12|Curtiss H-12]] |{{Curtiss H-12!!soort}}| 1| L-2 | {{Curtiss H-12!!per}} |
{{NI}}<br>[[Tracesofwar|https://www.tracesofwar.nl/articles/2175/Nederlandse-torpedoboten.htm?c=gw]] classificeert de ''Cycloop'' bij de Hydra-klasse (Hydra, Python, ''Cycloop'', Sphinx, Minotaurus en Scylla) hetgeen logisch lijkt gezien de naam.<br>
[[Navypedia|http://www.navypedia.org/ships/netherlands/nl_dd_ardjoeno.htm]] classificeert de ''Cycloop'' bij de Ardjoeno-klasse (Ardjoeno, Batok, Dempo, ''Cycloop'', Habang, Goentoer, Empong, Foka, Krakatau, Idjen) hetgeen in overeenstemming is met [[archieven.nl|https://www.archieven.nl/nl/zoeken?mivast=0&mizig=210&miadt=2231&micode=037&milang=nl&mizk_alle=cycloop%20torpedoboot&miview=inv2]]: //324-326 Stukken betreffende de torpedoboot Cycloop van de Ardjoeno-klasse//<br>
Hoewel [[Navypedia|http://www.navypedia.org/ships/netherlands/nl_dd_cerberus.htm]] de Cerberus als een aparte klasse beschouwt wordt hij gewoonlijk tot de Ardjoeno-klasse gerekend (valt binnen de marges van de Ardjoeno-klasse).
{{||$:/_ship_template}}
* <<slider "Mijnenveger D ca. 1936" Schepen164>>
{{||$:/_ship_template}}
* <<slider "Kanonneerboot/mijnenlegger Das ca. 1900" Schepen380>>
@@.c <<slider "Verkennen databank" "Verkennen databank marineschepen">>@@
<<tabs "
[[Scheepsklassen]]
[[Schepen op naam]]
[[Schepen op datum]]
[[Lijsten pennantnummers]]
Extra
[[Foto's van marineschepen]]
[[Zoeken in databank]]
" "" "">>
!! Databank van watervliegtuigen
<<list-links "[tag[wvliegtuigdata]sort[]]-$:/_plane_details_template" "" "" "tgc-3columns>>
---
!! Databank van 'landvliegtuigen' bij de MLD
<<list-links "[tag[vliegtuigdata]sort[]]-$:/_plane_details_template" "" "" "tgc-3columns>>
{{||$:/_ship_template}}
* <<slider "Fregat De Bitter 1964" Schepen229>>
Oorspronkelijk USS Rinehart (DE-196).<br>{{US-NL}}
[[link|https://javapost.nl/2011/07/19/beschermd-door-houten-mitrailleurs/]]
<iframe src='https://javapost.nl/2011/07/19/beschermd-door-houten-mitrailleurs/' frameborder="0" width="1024"; height="600"></iframe>
Na faillisement van Airco in 1920 werd De Havilland opgericht. Dit werd een succesvolle vliegtuigbouwer.
<<imageh 1933_ca_Marinevliegkamp_De_Kooy.jpg 400>>
//Marinevliegkamp De Kooy gezien vanuit de lucht.<br>
Op zo'n rond veld kon altijd tegen de wind in opgestegen en geland worden!//
<<imageh 1930_ca_MLD_De_Mok.jpg 400>>
//Marinevliegkamp 'De Mok', ca. 1930.//
<<imageh Kaart_vliegkamp_De_Mok.jpg 400>>
//Kaart van vliegkamp De Mok op Texel.//
<<imageh 19xx_Luchtfoto_De_Mok.jpg 400>>
//Luchtfoto MVK De Mok, ca. 1933.//
Een nieuw schroefstoomschip van de Atjeh-klasse met de naam De Ruyter, zie ook [[Koningin Emma der Nederlanden (1880)]].<br>
[[Atjeh (1877)]], [[Tromp (1882)]], [[Koningin Emma der Nederlanden (1880)]], [[Johan Willem Friso (1887)]] hadden 2 schoorstenen.<br>
I.t.t. bovenstaande schepen hadden [[De Ruyter (1885)]] en [[Van Speijk (1887)]] slechts één schoorsteen.
{{||$:/_ship_template}}
* <<slider "Pantserschip De Ruyter, ca. 1914" Schepen115>>
{{||$:/_ship_template}}
* <<slider "Torpedobootjager De Ruyter ca. 1929 (na 1931 Van Ghent)" Schepen074>>
In 1934 werd de torpedobootjager [[De Ruyter (1928)]] omgedoopt in [[Van Ghent (1934)]]; dit vanwege de bouw van een nieuwe kruiser met de naam De Ruyter.
{{||$:/_ship_template}}
* <<slider "Kruiser De Ruyter 1935" Schepen037>>
* <<slider "Kruiser De Ruyter 1936" Schepen044>>
* <<slider "Kruiser De Ruyter 1936" Schepen045>>
* <<slider "Kruiser De Ruyter ca. 1938" Vliegtuig006>>
* <<slider "Kruiser De Ruyter 1942" Schepen076>>
{{||$:/_ship_template}}
* <<slider "Kruiser De Ruyter 1954" Schepen227>>
* <<slider "Kruiser De Ruyter ca. 1963" Schepen228>>
''De Ruyter'', een lichte kruiser die samen met het zusterschip ''De Zeven Provinciën'' voor WWII op stapel waren gezet, ter vervanging van de [[Java (1925)]] en [[Sumatra (1926)]].<br>
Bij het begin van WWII waren er alleen twee rompen van toen nog ''Eendracht'' en ''De Zeven Provinciën'' geheten kruisers. De schepen werden niet door de Duitsers afgebouwd.<br>
Na de oorlog werden de schepen - volgens een nieuw plan - afgebouwd; ''Eendracht'' werd hernoemd tot ''De Zeven Provinciën'', ''De Zeven Provinciën'' werd hernoemd tot ''De Ruyter''.<br>Zie ook: [[dutchfleet|https://www.dutchfleet.nl/showthread.php/1580-90-Kruiser-'De-Ruyter'?highlight=Ruyter]]
''N.B.:'' Tijdens de proefvaart bleek de radio-ontvangst niet goed met de onderlinge afstand tussen de voor- en achtermast. Ir. Wimmers kwam toen met de oplossing de achtermast om te keren en óm de voorzijde van de tweede schoorsteen te plaatsen. Daardoor werd de afstand tussen beide masten kleiner en de radio-ontvangst beter.<br>
Hierdoor ontstond het merkwaardige optische effect, dat de mast vooroverleunde, terwijl de schoorsteen naar achteren leunde. Dat effect werd nog jaren later "het Wimmerseffect" genoemd. De ingreep vond al vóór de indienststelling plaats.
{{||$:/_ship_template}}
* <<slider "Fregat De Ruyter ca. 1985" Schepen186>>
* <<slider "Fregat De Ruyter ca. 1990" Schepen214>>
{{||$:/_ship_template}}
* <<slider "Fregat De Ruyter 2007" Schepen274>>
|Periode |Marineschip |h
| 1885-1899 |schroefstoomschip 1e klasse [[De Ruyter (1885)]]|
| 1902-1923 |pantserschip [[De Ruyter (1902)]]|
| 1928-1934 |torpedobootjager [[De Ruyter (1928)]]|
| 1936-1942 |kruiser [[De Ruyter (1936)]]|
| 1953-1973 |kruiser [[De Ruyter (1953)]]|
| 1976-2001 |fregat [[De Ruyter (1976)]]|
| 2004- |fregat [[De Ruyter (2004)]]|
Oorspronkelijk USS Eisner (DE-192).<br>{{US-NL}}
{{||$:/_ship_template}}
* <<slider "Pantserschip De Zeven Provinciën 1910" Schepen030>>
* <<slider "Pantserschip De Zeven Provinciën 1910" Schepen052>>
* <<slider "Pantserschip De Zeven Provinciën 1920" Schepen039>>
* <<slider "Pantserschip De Zeven Provinciën ca. 1921" Schepen049>>
* <<slider "Pantserschip De Zeven Provinciën ca. 1921" Schepen050>>
* <<slider "Pantserschip De Zeven Provinciën 1933" Schepen051>>
{{||$:/_ship_template}}
* <<slider "Kruiser De Zeven Provinciën 1954" Schepen371>>
* <<slider "Kruiser De Zeven Provinciën ca. 1970" Schepen370>>
In de jaren 1962-1964 werd de kruiser 'De Zeven Provinciën' verbouwd tot raketkruiser. De twee achterste torens met het 152mm geschut werden verwijderd en het achterschip werd verhoogd om ruimte te bieden aan de dubbele lanceerinrichting, een geleide wapenbergplaats en diverse ruimten voor het laden en assembleren van de Terrierraketten. Tevens werden verschillende radarsystemen gemonteerd.<br>
Op 20 november 1964 werd het gemoderniseerde schip opnieuw in dienst gesteld.
Zie ook: [[dutchfleet|https://www.dutchfleet.nl/showthread.php/1599-91-Kruiser-De-Zeven-Provinci%C3%ABn?highlight=provinci%EBn]]
{{||$:/_ship_template}}
* <<slider "Fregat De Zeven Provinciën 2014" Schepen276>>
Heeft van 1911-1919 dienst gedaan in Nederlands-Indië. Na groot onderhoud in Den Helder (1919-1921) vertrok het schip voor de tweede en laatste keer naar Nederlands-Indië. Daar aangekomen fungeerde het als artillerie-instructieschip.<br>
Het schip werd bekend door een muiterij in 1933, die in feite een protest-demonstratie tegen arbeidsomstandigheden was en de geschiedenis is ingegaan als de Muiterij op De Zeven Provinciën. Na een week werd de muiterij beëindigd met een luchtaanval waarbij een bom op het schip werd gegooid en 23 doden vielen. Onduidelijk is of de aanval gericht was of slechts als waarschuwing bedoeld, waarbij de bom vóór het schip had moeten belanden. De opdracht voor de aanval werd rechtstreeks door minister Deckers gegeven.<br>
Na de muiterij werd het schip herdoopt in Soerabaja en voor opleidingen bestemd. In de Tweede Wereldoorlog werd het bij een Japans bombardement tot zinken gebracht. De Japanners hebben het schip gelicht en als batterijschip gebruikt. In het Westervaarwater is het opnieuw gezonken.
De 10 schepen van de DEFG-klasse waren ook ontworpen als politiekruisers en waren iets groter en sneller dan hun voorgangers van de ABC-klasse. Doordat de schepen van deze klasse pas na de Duitse inval in Nederland werden opgeleverd werden zij meteen aangepast en in dienst gesteld als hulpmijnenvegers.<br>
6 schepen: ''Djember'', ''Djombang'', ''Digoel'', ''Djampea'', ''Enggano'' en ''Endeh'' hebben dienst gedaan.<br>
4 schepen: `Flores`, `Fakfak`, `Grissee` en `Garoet` werden onafgebouwd tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Mijnenjager Delfzijl ca. 1995" Schepen296>>
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip ca. 1928" Schepen396>>
{{NI}} Stationsschip te Menado, Noord-Celebes. Ten tijde van de militarisering van de Gouvernements Marine was de Deneb stationsschip in de Riouw Archipel met als basis Tandjong Pinang.<br>
Op 4 februari 1942 werd de Deneb, bij het aanlopen van het eiland Zuid-Broeder, aan de zuidingang van Straat Doerian in de Riouw Archipel, aangevallen door zeven tweemotorige Japanse bommenwerpers. Doordat het schip niet over luchtafweergeschut beschikte, was het kansloos en tien treffers en near misses brachten het schip tot zinken.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Deurloo ca. 1953" Schepen452>>
Oorspronkelijk US YMS-254, daarna Brits BYMS 2254.<br>{{YMS46}}<br>1956 - 1962 duikvaartuig.
In 1941 in dienst gesteld als Hulpmijnenveger 23 (HMV23). Op 1 maart 1942 werd het door de eigen bemanning tot zinken gebracht in de haven van Tandjong Priok. De Japanners hebben het wrak nooit gelicht.
ex RO 53 (1933).<br>De trawler werd op 28 maart 1940 gevorderd. Na enige aanpassingen werd de trawler in dienst gesteld als Hulpmijnenveger 8. Op 14 mei 1940 ontkwam het schip naar Engeland waar het deelnam aan veegoperaties in Britse wateren. Op 3 december 1941 werd de hulpmijnenveger naar Nederlands West-Indië gestuurd om te fungeren als patrouillevaartuig. Samen met de [[Claesje (1940)]] keerde het schip in maart 1945 terug in Engeland en na de bevrijding in Nederland. In december 1945 werd het vissersschip teruggegeven aan de oorspronkelijke eigenaar.
In 1941 in dienst gesteld als Hulpmijnenveger 21 (HMV21). Op 1 maart 1942 werd het schip door de eigen bemanning tot zinken gebracht te Tandjong Priok. De Japanners hebben het wrak gelicht en hersteld maar nooit in dienst genomen. In 1945 werd de Djampea teruggevonden te Soerabaja en overgedragen aan de Dienst van Scheepvaart. In 1949 werd het schip overgedragen aan de Indonesische marine.
In 1941 in dienst gesteld als Hulpmijnenveger 19 (HMV19). Op 1 maart 1942 werd het schip door de eigen bemanning tot zinken gebracht in de haven van Tandjong Priok, Batavia. Op 15 januari 1943 werd het schip door de Japanners gelicht en te Tandjong Priok gerepareerd en in Japanse dienst gesteld als Hulpmijnenveger WA104. Op 12 april 1945 getorpedeerd door de Britse onderzeeboot HMS Stygian en ten westen van Bali aan de grond gezet. Later werd het schip weer geborgen en eind 1945 werd het teruggevonden in Soerabaja. De Djember werd overgedragen aan de Dienst van Gewestelijke Vaartuigen en weer als politiekruiser in dienst gesteld. In 1950 werd het schip overgedragen aan Indonesië.
In 1941 in dienst gesteld als Hulpmijnenveger 20 (HMV20). Op 2 maart 1942 werd het schip door de eigen bemanning tot zinken gebracht in de haven van Tandjong Priok.Op 1 april 1943 werd het schip door de Japanse bezetter gelicht, gerepareerd en in dienst gesteld als Hulpmijnenveger WA106. Na WWII werd het schip teruggegeven aan de Koninklijke Marine die het van 3 mei 1947 tot december 1949 gebruikte als stationschip in Noord-Celebes. In 1949 werd de Djombang overgedragen aan de Indonesische marine.
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Dog 1915" Schepen381>>
Navpedia vermeldt: ''Daak''; Jaarboek KM 1895-'96 vermeldt: ''Dog''
{{||$:/_ship_template}}
* <<slider "Mijnenveger Dokkum 1955" Schepen084>>
* <<slider "Ondersteuningsschip Dokkum 1986" Schepen239>>
Mijnenveger [[Dokkum (1955)]] werd in 1968 omgebouwd tot mijnenjager.<br>
Na uitdienstname in 1986 (als mijnenjager), verder als varend proefstation voor brandstoffen (Y8001) en tijdelijk verder als [[Van Speijk (1986)]] (tot 1995 toen fregat [[Van Speijk (1995)]] in dienst werd genomen.<br>
Zie ook <<popup "Van Speijk" "Van Speijk_info">>.
De [[Dokkum-klasse|Dokkum (1955)]] was gebaseerd op de Britse Ton-klasse.<br>
De constructie was vergelijkbaar met de Britse schepen: een dubbellaags mahoniehouten romp en verder aluminium en non-ferro materialen.<br>
18 schepen verkregen via <<popup MDAP MDAP>>.<br>
14 schepen - de [[Wildervank subklasse|Wildervank (1955)]] - gekocht.
{{||$:/_ship_template}}
* <<slider "Patrouilleschip (schoener) Dolfijn ca. 1905" Schepen362>>
* <<slider "Patrouilleschip (schoener) Dolfijn ca. 1905" Schepen435>>
De schoener Dolfijn was een politievaartuig voor toezicht op de visserij. In 1921 overgegaan naar het Loodswezen.
ex IJM 103 (1920).<br>De trawler ontkwam naar Engeland en werd daar begin 1941 gevorderd. Nadat het schip was omgebouwd tot hulpmijnenveger werd het schip in dienst gesteld in Liverpool om van daaruit deel te nemen aan mijnenveegoperaties in Britse wateren. Toen de Koninklijke Marine op 7 november 1942 de Britse onderzeeboot HMS P47 overnam en in dienst stelde als [[Dolfijn (1942)]] werd de hulpmijnenveger herdoopt in ''Goeree''. Op 20 februari 1944 werd het schip uit dienst gesteld en uitgeleend aan de Royal Navy. In 1945 werd de trawler teruggegeven aan de oorspronkelijke eigenaar.
{{||$:/_ship_template}}
* <<slider "Duikboot Dolfijn 1942" Schepen105>>
ex Britse P 47; werd al tijdens de bouw aan de Nederlandse marine overgedragen.
{{||$:/_ship_template}}
* <<slider "Onderzeeboot Dolfijn 1948" Schepen106>>
* <<slider "Onderzeeboot Dolfijn ca. 1950" Schepen140>>
{{||$:/_ship_template}}
* <<slider "Duikboot Dolfijn 1967" Schepen188>>
De 2 duikboten uit de Dolfijn-klasse ([[Dolfijn (1960)]] & [[Zeehond (1961)]]) waren z.g. [[driecilinder duikboten|Driecilinder duikboten]] evenals de 2 duikboten uit de Potvis-klasse ([[Potvis (1965)]] & [[Tonijn (1966)]]).
{{||$:/_ship_template}}
* <<slider "Duikboot Dolfijn 2013" Schepen176>>
De Britse duikboot Taurus werd voor 5 jaar aan Nederland uitgeleend en als Dolfijn in dienst genomen.<br>
In 1949 en 1950 werd er door de Dolfijn intensief getest met de snuiver. Gedurende een reis naar Bornoya , Jan Mayen en Tromsø werd er bijna aan een stuk 450 uur met de snuiver gevaren.
!! Zoeken in de databank
<<<
''N.B.:''<br>Zoeken is hier ''niet'' hoofdlettergevoelig!
<<<
{{$:/core/ui/AdvancedSearch/Standard}}
{{||$:/_ship_template}}
* <<slider "Mijnenjager Dordrecht ca. 1995" Schepen297>>
{{||$:/_plane_template}}
* <<slider "Dornier Do 18 1940" Vliegtuig046>>
* <<slider "Dornier Do 18 1940-1945" Vliegtuig051>>
{{||$:/_plane_template}}
* <<slider "Cockpit Dornier Do24K" "Vliegtuig150">>
* <<slider "Werkplek boordwerktuigkundige Dornier Do24K" "Vliegtuig151">>
* <<slider "Dornier Do24K (X-1) 1939" Vliegtuig027>>
* <<slider "Dornier Do24K (X-1) ca. 1939" Vliegtuig028>>
* <<slider "De laatste Dornier Do 24K-1's 1940" Vliegtuig104>>
{{||$:/_plane_template}}
* <<slider "De enige Dornier Do 24K-2 1940" Vliegtuig104>>
{{||$:/_plane_template}}
* <<slider "Dornier Wal D21 ca. 1929" Vliegtuig026>>
* <<slider "Dornier Wal 1937" Vliegtuig020>>
* <<slider "3x Dornier Wal ca. 1935" Vliegtuig030>>
* <<slider "7x Dornier Wal ca. 1935" Vliegtuig031>>
* <<slider "Dornier Wal D1 1937" Vliegtuig024>>
specs voor uitvoering met 2 × Rolls-Royce Eagle IX V-12 motoren<br>
later 2x Lorraine-Dietrich motoren (2x 330kW).
{{||$:/_plane_template}}
* <<slider "Dornier Wal D41 ca. 1936" Vliegtuig009>>
Verbeterde versie van de Wal, o.a. met kiel en vergrote spanwijdte (27 m)
{{||$:/_plane_template}}
* <<slider "Dornier Do R4 Superwal 1931" Vliegtuig034>>
* <<slider "Dornier Do R4 Superwal 1931" Vliegtuig035>>
{{||$:/_plane_template}}
* <<slider "Dornier Do X 1930" Vliegtuig040>>
* <<slider "Dornier Do X 1930" Vliegtuig041>>
* <<slider "Dornier Do X 1930" Vliegtuig043>>
* <<slider "Dornier Do X ca. 1930" Vliegtuig025>>
Grootste verschil met Do24K-1: steviger staart (Do24K-1's werden ook aangepast) en vergrote actieradius.<br>
Alleen ''X-37''.
{{||$:/_plane_template}}
* <<slider "Dornier Seastar CD2 2017" Vliegtuig023>>
* <<slider "Dornier Seastar CD2 2017" Vliegtuig205>>
!!Dornier
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[Do J Wal|Dornier Do J I Wal]] |{{Dornier Do J I Wal!!soort}} | 40| D1 - D40 | {{Dornier Do J I Wal!!per}} |
|[[Do J IIf Wal|Dornier Do J IIf Wal]] |{{Dornier Do J IIf Wal!!soort}} | 6| D41 - D46 | {{Dornier Do J IIf Wal!!per}} |
|[[Do24K-1|Dornier Do 24K-1]] |{{Dornier Do 24K-1!!soort}} | 36| X-1 - X-36 | {{Dornier Do 24K-1!!per}} |
|[[Do24K-2|Dornier Do 24K-2]] |{{Dornier Do 24K-2!!soort}} | 1| X-37 | {{Dornier Do 24K-2!!per}} |
* <<slider "Registratiegegevens Do J Wal" "Gegevens Dornier DO-15 Wal MLD">>
* <<slider "Registratiegegevens Do24K" "Gegevens Dornier Do 24K MLD">>
|Type |rol |opmerkingen |h
|[[Do 18|Dornier Do 18]] |{{Dornier Do 18!!soort}}||
|[[Do R4 Superwal|Dornier Do R4 Superwal]] |{{Dornier Do R4 Superwal!!soort}}||
|[[Do X|Dornier Do X]] |{{Dornier Do X!!soort}} |In zijn tijd de grootste vliegboot |
|[[Seastar CD2|Dornier Seastar CD2]] |{{Dornier Seastar CD2!!soort}} |Dornier Wal 'reborn' |
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Douwe Aukes 1939" Schepen143>>
In 1940 naar Engeland ontsnapt, in 1941 uitgeleend aan de Britse marine (luchtafweerkanonneerboot T309). Was actief bij de landing in Normandië.<br>In 1945 terug naar Nederland, ontwapend en ingezet als depotschip voor mijnenvegers en mijnenvegerwerkschip. Vanaf 1959 logementschip voor de mijnendienst (A898). In 1962 buiten dienst gesteld.
{{||$:/_ship_template}}
* <<slider "Monitor Draak ca. 1880" Schepen258>>
<<slider "Artist impression van een driecilinder duikboot" Driecilinder_duikboot>>
[[marineschepen.nl|https://marineschepen.nl/schepen/drie-cilinder-onderzeeboten.html]]
<iframe src='https://marineschepen.nl/schepen/drie-cilinder-onderzeeboten.html' frameborder="0" width="1024"; height="600"></iframe>
<<imageh Artist_Impression_driecilinder_duikboten.jpg 400>>
//Artist impression van een driecilinder duikboot.//
!!! Links, dropdown links, popups & mouseovers
* Bij klikken op een standaard link opent een informatieblok in een nieuwe tab in de navigatiebalk
** Voorbeeld van een standaard link: [[voorbeeld link|$:/_vb-link]]
* Bij klikken op een 'drop down link' wordt extra informatie 'uitgevouwen'
** Voorbeeld van een <<slider "dropdown link" "$:/_vb-dropdown-link">>
* Bij klikken op een 'popup' wordt extra informatie over de andere tekst heen getoond.
** Voorbeeld van een <<popup "popup" "$:/_vb-popup">>
* Bij een 'mouseover' wordt extra informatie over de andere tekst heen getoond zodra de muiscursor zich over de mouseover link beweegt
** Voorbeeld van een <<mouseover "mouseover" "$:/_vb_mouseover">>
> Mouseovers zijn alleen zichtbaar te maken bij een muiscursor! Deze werken dus ''niet'' op b.v. een iPad!
Het verschil tussen een link, een dropdown link, een popup en een mouseover moge duidelijk zijn na klikken op - of bewegen over - de bovenstaande links.
In 1970 omgebouwd tot mijnenjager.
<svg xmlns="https://www.w3.org/2000/svg" width="120" height="80" viewBox="0 0 9 6">
<path d="M0,0H9V6H0z" fill="#ae1c28"/>
<path d="M0,0H4.5V6H9zM0,6V3H9V0z" fill="#21468b"/>
<path d="M3,0H6L3,6H6zM0,2V4L9,2V4z" fill="#fff"/>
</svg>
{{||$:/_ship_template}}
* <<slider "Fregat Dubois ca. 1960" Schepen230>>
Oorspronkelijk USS O'Neill (DE-188).<br>{{US-NL}}
!!! Duikboot
Een duikboot, is een vaartuig dat onder water kan varen. Ook wel onderzeeboot of onderzeeër genoemd.<br>
De Nederlandse marine maakte onderscheid tussen @@.BLUE duikboten@@ en @@.BLUE onderzeeboten@@:
* Een @@.BLUE duikboot@@ was een vaartuig dat zich voornamelijk boven water verplaatste en pas onder water ging om aan tegenstanders te ontsnappen of aan te vallen. Tot aan het eind van de Tweede Wereldoorlog was dit de gewone werkwijze voor duikboten. De topsnelheid was aan de oppervlakte doorgaans groter dan onder water. De U-boot is een typisch voorbeeld van een duikboot.
* Een @@.BLUE onderzeeboot@@ daarentegen blijft langer onder water en komt slechts aan de oppervlakte zodra dat nodig is. Dit werd pas mogelijk door de toepassing van een [["snorkel of snuiverinstallatie"|Snorkel]]. Aangezien de Nederlandse marine de eerste was die de snorkel toepaste en zij zich ervan bewust was dat haar duikboten daardoor langer onder water konden blijven dan de vaartuigen van andere mogendheden is zij dit onderscheid gaan maken.<br>
Dit strikte onderscheid tussen duikboot en onderzeeboot is elders onbekend.
<<w>>
!!! Duikvaartuig
Een duikvaartuig wordt gebruikt als moederschip voor duikers en kikvorsmannen in binnenwateren, meestal voor het onklaar maken van mijnen en springstoffen.
<<w>>
<<imageh 1910_Binnenplaats_Amstelbrouwerij_paarden_elektrische_autos.jpg 400>>
//Binnenplaats van de Amstelbrouwerij met paardenwagens en elektrische autos, 1910.//
<<imageh 1910_ca_Amstel_brouwerij_1.jpg 400>>
//Mercedes elektrische vrachtwagens van de Amstel brouwerij (met Lohner-Porsche naafmotoren), ca. 1910.//
<<imageh 1881_Ayrton_Perry_first_electric_car.jpg 300>>
//Replica van de Ayrton & Perry elektrische auto, 1881.<br>
Een van de eerste 'elektrische auto's' - voorzien van elektrische verlichting - 6 jaar voor de Daimler.//
<<imageh 1881_Ayrton_Perry_first_electric_car.jpg 400>>
//Replica van de Ayrton & Perry elektrische auto, 1881.<br>
Een van de eerste 'elektrische auto's' - voorzien van elektrische verlichting - 6 jaar voor de Daimler.//
<<imageh Electric_street_cleaning_machine.jpg 400>>
//De wagens van de Stadsreiniging lijken hier verdacht veel op en zullen dus wel bij 'Elitewagen' vandaan gekomen zijn.//
<<imageh 1904_Kraftdroschke.jpg 400>>
//'Kraftdroschke' oftewel elektrische taxi, 1904.//
<<imageh 1915_Detroit_Electric.jpg 400>>
//Een Detroit Electric uit 1915.//
<<imageh 1922_Detroit_Electric_Maker_Faire_2011.jpg 400>>
//Een Detroit Electric uit 1922 op de 'Maker Faire' 2011.//
<<imageh 1888_Flocken_Elektrowagen1.jpg 400>>
//Replica van de Flocken Elektrowagen uit 1888.//
[img height=250 [Foto/1881_Trouve_trike.jpg]]<br>
//De driewieler van Gustave Trauvé, 1881.//
[img height=400 [Foto/1881_Trouve_trike.jpg]]<br>
//De driewieler van Gustave Trauvé, 1881.//
<<imageh 1922-1927_Bergmann_Paketzustellwagen_Nuernberg.jpg 400>>
//Bestelwagen van Bergmann, 1922-1927.//
<<imageh 1897_Louis_Krieger_taxi.jpg 400>>
<<imageh 1912_Baker-Electric-Coupe.jpg 400>>
//Baker-Electric coupé, 1912.<br>
Een Oma Duck auto.//
<<imageh 1912_Baker_Electric.jpg 400>>
//Baker-Electric, 1912.//
<<imageh 1900_Columbia_elektroauto_pic3.jpg 400>>
//Columbia elektrische auto, 1900.//
<<imageh 1904_Columbia_Electric_Runabout.jpg 400>>
//Columbia Electric Runabout, 1904.//
<<imageh 1919_Slaby-Beringer_elektr_auto.jpg 400>>
//Slaby-Beringer elektrische auto, 1919.//
{{||$:/_ship_template}}
* <<slider "Flottieljevaartuig Edi ca. 1910" Schepen284>>
{{NI}} In 1910 naar Gouvernementsmarine.
Although the Netherlands still possessed colonies in the West and East Indies and a important merchant trade shipping decreased for a long period the navy budget. In 1919 the Dutch States General even seriously discussed to give up the navy! Nowadays again is a discussion going on what to do with the Dutch armed forces and what the effects will be of the still going retrenchments.
Until 1936 the Dutch navy had just two aged cruisers the Java and the Sumatra (German design), the third one the Celebes (whish was 3 meter longer) was never built, because the lack of money. In 1935 to 1936 there was build a new cruiser named De Ruyter, and new design whit high speed and light armament of 7, 15cm at 4 turrets She was named after the most famous Dutch sea hero Michiel Adriaansz de Ruyter. What nobody knew at that momeny was her final fate comparable with that of him. He was send by the Dutch States General with a fleet not competent enough for a war but still he obeyed his orders and went to die in a battle against the French. In 1942 rear admiral Karel Doorman did the same while attacking with his De Ruyter the Japanese fleet in the Java Sea knowing that his chances on success were almost nothing. The result is well known, he went down with his ship. The words “All ships follow me”, were in the Netherlands translated as “I attack follow me! It’s a real seaman with love for his country.
In the years that follow since 1936 a large navy program was set up but not realized before the outbreak of the Second World War. The projected three battle cruisers were never laid down, the flotilla leader/light cruiser Tromp was built and her sister ship Jacob van Heemskerck launched but two cruisers were just laid down. Like the De Ruyter were both ships designed by engineer G. ‘t Hooft. They were intended to serve in the Dutch East Indies.
In 1938-1939 there was a plan for cruisers too, they would have been larger then the De Ruyter and heavier armed with 10 152mm guns. When on stocks in 1940,when the German invade the country the ships were captured and were being finist by the Germans as training cruisers to be named KH-1 and 2. The De Ruyter was happen to have a Atlantik-bug, a German bow designed for high speeds in the Atlantic. In 1942 they sould have been finist but during the (setbacks) it wasn’t realised and they were not finist, they would have been used as blokships in 1944, but also that was not happen and after the war the hulks were find back undamaged and were being to finest still by the Dutch, but for home waters to serve in the NATO fleet. The Dutch asked help to the USN but they didn’t wanted to, because they said they will not have a use in the navy. The Dutch hold on his own wishes and asked the British. Later the British provided a cruiser design, based at war (revering) at Bath, but the design was not chosen and a second design being done together with the Dutch was not used as well though both designs were an impartment base for the final design. In 1952 the ships were doing trails and got some modifications to the bridge and mast before the commission in 1953.
One cruiser laid down by the Rotterdamsche Droogdok maatschappij was first called Kijkduin, then Eendracht and when laid down 19 May 1939 called De Ruyter. When finally finished and launched 22 august 1950 was she again renamed namely De Zeven Provinciën. She became later the Peruvian Almirante Aguirre, broken up not earlier as in 2000!The other cruiser was 5 September 1939 laid down at Wilton Fijenoord at Schiedam as the Zeven Provinciën! Her design was by the Germans altered slightly lengthened was she fitted out with a so-called Atlantic bow. In 1947 was she renamed De Ruyter and commissioned 18 November 1953. The drawing is of her appearance at that year.Nowadays she still exists and in actual service as the last heavy gun cruiser of the world with a hull aged 70 years! As the Peruvian Almirante Grau she still rules the waves, an example of Dutch shipbuilding!
!! La Cuadra
Zou de Spaanse automobielfabriek La Cuadra al in 1899 een hybride auto ontwikkeld hebben?
De [[Duitse versie van Wikipedia|https://de.wikipedia.org/wiki/La_Cuadra]] vermeldt het volgende:
//1899 wurde das erste spanische Automobil unter dem Namen 'La Cuadra' in Barcelona gebaut, dem jedoch kein Erfolg beschieden war.<br>
Erste Modellreihe: 'La Cuadra 1' sah einer Kutsche ähnlich, hatte zwei Sitze und verfügte über einen 3-kW-Elektromotor.
Eine weitere Version wurde mit einem zusätzlichen 5-PS-Verbrennungsmotor, der einen Dynamo antrieb und die Batterien des Fahrzeuges aufladen konnte, gebaut. La Cuadra baute somit in diesen Jahren ''einen der ersten Hybridantriebe'' der Welt.<br>
Ende 1899 wurden auch Fahrzeuge mit Zweizylinder-Viertakt-Verbrennungsmotor, 1100 cm³ Hubraum und 4 PS Leistung gebaut.//
De [[Spaanse versie van Wikipedia|https://es.wikipedia.org/wiki/La_Cuadra_%28autom%C3%B3viles%29]] vermeldt echter (met Google translate naar het Engels vertaald):
//Later he tried to install an internal combustion engine powered by a generator that would recharge their batteries, but ''the invention did not work'', so in 1899 he decided to develop the internal combustion engine.//
!! Pieper
Of zou Pieper eerder geweest zijn? Hij toonde eveneens in 1900 zijn 'Petroleo electrique'.
[img height=250 [Egger-Lohner C2|Images/Egger-Lohner_C2.jpg]]<br>
//Egger-Lohner C2//
<<imageh 1898_Egger-Lohner_C2.jpg 400>>
//Porsche museum Stuttgart: de teruggevonden Egger-Lohner C2 Phaeton (Porsche P1, 1899).<br>
In originele - niet gerestaureerde toestand; het blauwe plexiglas dient alleen om de originele vormen van het koetswerk aan te geven.//
<<imageh 1898_Egger-Lohner_C2_orig.jpg 400>>
//De teruggevonden Egger-Lohner C2 Phaeton (Porsche P1, 1899) die vanaf 1902 tot 2013 in een Oostenrijkse schuur stond.<br>
Accu's en bekleding hadden het niet overleefd maar de motor werkte nog.//
<<imageh 1898_Egger-Lohner-Elektromobil1.jpg 400>>
//Egger-Lohner C14, 1899.//
<<imageh 1898_Egger-Lohner-Elektromobil2.jpg 400>>
//Egger-Lohner C14, 1899.//
<<imageh 1898_Egger-Lohner-C2.jpg 400>>
//De teruggevonden Egger-Lohner C2 Phaeton (Porsche P1, 1899) die vanaf 1902 tot 2013 in een Oostenrijkse schuur stond.<br>
Accu's en bekleding hadden het niet overleefd maar de motor werkte nog.//
<<imageh 1899_Egger-Lohner_C14_1.jpg 400>>
//Egger-Lohner C14, 1899.//
<<imageh 1899_Egger-Lohner_C14_2.jpg 400>>
//Egger-Lohner C14, 1899.//
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Ellerts de Haan ca, 1930" Schepen215>>
{{||$:/_ship_template}}
* <<slider "Mijnenveger/mijnenlegger Eland Dubois ca. 1939" Schepen156>>
In 1937 naar Nederlands-Indië gevaren en daar werd de registratie veranderd van ''D'' naar ''DB'' om verwarring met de mijnenveger [[D (1930)]] te voorkomen.<br>
Tijdens het uitbreken van WWII was de Eland Dubois gestationeerd in Nederlands-Indië. Maart 1942 gingen de Jan van Amstel en de Eland Dubois (met slechts één werkende ketel) op weg naar Australië. Gespot door een Japans vliegtuig werd besloten de Eland Dubois te laten zinken.
<<tabs "
[[Puur elektrische auto's]]
[[Hybride auto's]]
" "
[[Puur elektrische auto's]]
" "" "
">>
[img[Elektromagnetisch wagentje|Images/karretjeStratingh.jpg]]
ex IJM 8, Kasai, Narval, Vonolel (1911).<br>De trawler werd op 26 september 1939 gevorderd. Het schip werd aangepast en in dienst gesteld als bewakingsvaartuig ''BV 42''. In mei 1940 kon de trawler ontkomen naar Engeland waar het schip omgebouwd tot hulpmijnenveger in dienst werd gesteld. Daarna nam het schip deel aan veegoperaties in de wateren rond Groot-Brittannië. Op 5 mei 1943 werd de vissersboot uit dienst gesteld en overgedragen aan de Britse marine. In 1945 ging het vaartuig terug naar de eigenaar. In 1951 werd de En Avant voor sloop verkocht.
In 1941 in dienst gesteld als Hulpmijnenveger 18 (HMV18). Op 1 maart 1942 ondernam een groep vrijwilligers van 24 man, voornamelijk officieren van de Koninklijke Marine, een poging om met het schip te ontkomen naar Australië. Reeds de volgende dag werd het schip onderschept door de Japanse torpedobootjagers Matsukaze en Shiokaze en met geschutvuur tot zinken gebracht. Van de opvarenden kwamen er 7 om het leven. De overlevenden wisten zich met moeite te redden in een vlet. Op 13 maart bereikte de vlet de Duizend Eilanden, net boven Tandjong Priok. Vier van de opvarenden gingen mee met een aantal inlandse vissers en zijn door hen om het leven gebracht. De overigen bereikten met een gevonden sloep het vasteland bij de landtong Krawang waar zij op 23 maart door een Japanse patrouille werden gevangengenomen. Zij werden overgebracht naar een Japans krijgsgevangenkamp.
In 1941 in dienst werd gesteld als Hulpmijnenveger 22 (HMV22). Op 1 maart 1942 door de eigen bemanning tot zinken gebracht in Tandjong Priok. De Japanse bezetter heeft het schip gelicht en op 31 augustus 1944 in dienst gesteld als Hulpmijnenveger WA107. De Japanse bemanning gaf zich een jaar later over waarna het schip terugging naar de Dienst van Scheepvaart. De Indonesische marine nam het schip over in 1950.
<svg version="1.0" xmlns="https://www.w3.org/2000/svg" width="120" height="80" viewBox="0,0 1800,1200">
<rect width="1800" height="600" fill="#ae1c28"/>
<rect y="600" width="1800" height="600" fill="#21468b"/>
<path d="M 0,400 V 800 L 1800,400 V 800 z" fill="#fff"/>
<path d="M 590.625,0 H 1209.375 L 590.625,1200 H 1209.375 z" fill="#fff"/>
</svg>
De Eridanus werd in maart 1922 in dienst gesteld van de {{GM}} en gebruikt als opnemingsvaartuig.<br>Vanaf de militarisering deed het schip eveneens dienst als stationsschip vanuit Tandjong Priok. Vanaf december 1941 bewaakten de Eridanus en de [[Tydeman (1918)]] bij toerbeurt de noordelijke toegang van Straat Makassar, tussen Borneo en Celebes. Na de val van Makassar, halverwege februari 1942, trokken de Tydeman en de Eridanus zich terug naar Soerabaja.<br>Op 2 maart werd de Eridanus aan de Hollandpier te Tandjong Perak, vlakbij Soerabaja, door de eigen bemanning tot zinken gebracht. Op 8 juni 1943 werd het schip door de Japanners gelicht, hersteld en verbouwd tot sleepboot en bergingsvaartuig onder de naam Enoshima Maru. Het schip werd pas teruggevonden op 2 november 1946 te Makassar en overgedragen aan de Dienst van Scheepvaart. Ten tijde van de soevereiniteitsoverdracht, in 1949, fungeerde de Eridanus als logementschip te Tandjong Priok en werd in die hoedanigheid overgedragen aan de Indonesische marine.
!!! Escorteschip
Een schip om konvooien te beschermen.<br>In WWII vaak torpedobootjagers, later fregatten.
<<w 400px>>
! [[Escorts]]
!! Sloops and frigates
<br>
# [[Van Kinsbergen (1939)]] sloop
# [[Johan Maurits van Nassau (1943)]] frigate
# ''Van Amstel'' destroyer escorts (1943-1944/1950-1951)
#* [[Van Amstel (1950)]]
#* [[De Bitter (1950)]]
#* [[Van Ewijck (1950)]]
#* [[Dubois (1950)]]
#* [[De Zeeuw (1951)]]
#* [[Van Zijll (1951)]]
# ''Van Speijk'' frigates (1967-1968)
#* [[Van Speijk (1967)]]
#* [[Van Galen (1967)]]
#* [[Tjerk Hiddes (1967)]]
#* [[Van Nes (1967)]]
#* [[Isaac Sweers (1968)]]
#* [[Evertsen (1967)]]
# ''Kortenaer'' frigates (1978-1983)
#* [[Kortenaer (1978)]]
#* [[Callenburgh (1979)]]
#* [[Van Kinsbergen (1980)]]
#* [[Banckert (1980)]]
#* [[Piet Hein (1981)]]
#* ~~`Pieter Florisz (1981)`~~
#* ~~`Witte de With (1982)`~~
#* [[Abraham Crijnssen (1983)]]
#* [[Philips van Almonde (1981)]]
#* [[Bloys van Treslong (1982)]]
#* [[Jan van Brakel (1983)]]
#* [[Pieter Florisz (1983)]] (ex-Willem van der Zaan)
# ''Jacob van Heemskerck'' frigates (1986)
#* [[Jacob van Heemskerck (1986)]] (ex-Pieter Florisz)
#* [[Witte de With (1986)]]
# ''Karel Doorman'' frigates (1991-1995)
#* [[Karel Doorman (1991)]] (ex-Groningen)
#* [[Willem van der Zaan (1991)]] (ex-Friesland)
#* [[Tjerk Hiddes (1993)]] (ex-Utrecht)
#* [[Van Amstel (1993)]]
#* [[Abraham van der Hulst (1993)]]
#* [[Van Nes (1994)]]
#* [[Van Galen (1994)]]
#* [[Van Speijk (1995)]]
!! Corvettes
<br>
# [[Friso (1943)]] corvette
# [[Queen Wilhelmina (1942)]] patrol craft
# ''A'' submarine chasers
#* ~~A~~
#* ~~B~~
#* ~~C~~
#* ~~D~~
#* ~~E~~
#* ~~F~~
# ''Balder'' corvettes (1954-1955)
#* [[Balder (1954)]]
#* [[Bulgia (1954)]]
#* [[Freyr (1954)]]
#* [[Hadda (1955)]]
#* [[Hefring (1955)]]
# [[Lynx (1956)]] corvette
!! Patrol vessels
<br>
# [[Albatros (1912)]] patrol ship {{GM}}
# [[Orion (1912)]] patrol ship {{GM}}
# [[Aldebaran (1913)]] patrol ship {{GM}}
# ''Bellatrix'' patrol ships (1914-1915)
#* [[Bellatrix (1914)]] {{GM}}
#* [[Canopus (1915)]] {{GM}}
#* [[Deneb (1915)]] {{GM}}
# [[Eridanus (1918)]] patrol ship {{GM}}
# [[Gemma (1918)]] patrol ship {{GM}}
# ''Sirius'' patrol ships (1922)
#* [[Sirius (1922)]] {{GM}}
#* [[Wega (1923)]] {{GM}}
# [[Fomalhaut (1923)]] patrol ship {{GM}}
# ''Merel'' patrol ships (1928-1931)
#* [[Merel (1928)]] {{GM}}
#* [[Reiger (1931)]] {{GM}}
#* [[Fazant (1932)]] {{GM}}
# ''Arend'' patrol ships (1929)
#* [[Arend (1929)]] {{GM}}
#* [[Valk (1929)]] {{GM}}
# ''Wolf'' patrol ships (1954)
#* [[Wolf (1954)]]
#* [[Fret (1954)]]
#* [[Hermelijn (1954)]]
#* [[Vos (1954)]]
#* [[Panter (1954)]]
#* [[Jaguar (1954)]]
# ''Holland'' patrol ships (2012-2013)
#* [[Holland (2012)]]
#* [[Zeeland (2013)]]
#* [[Friesland (2013)]]
#* [[Groningen (2013)]]
<<imageh Europa-Indie.jpg 400>>
ex IJM115, Nahe, Margarete, Ludwig (1912)<br>De trawler werd in 1940 gevorderd en in Engeland omgebouwd tot hulpmijnenveger. Nam deel aan veegoperaties in Britse wateren. Op 27 januari 1942 kwam het schip in de baai van Milford Haven, Wales, in aanvaring met de Britse mijnenveger HMS Shera en zonk.
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Ever 1899" "Schepen010">>
* <<slider "Kanonneerboot Ever 1907" "Schepen003">>
* <<slider "Kanonneerboot Ever 1907" "Schepen004">>
* <<slider "Kanonneerboot Ever 1907" "Schepen007">>
* <<slider "Kanonneerboot Ever 1912" Schepen382>>
* <<slider "Kanonneerboten Bulgia en Ever 1918" Schepen388>>
1884 - 1914 trainingsschip.
{{||$:/_ship_template}}
* <<slider "Pantserschip Evertsen 1896" Schepen299>>
* <<slider "Pantserschip Evertsen 1909" Schepen005>>
* <<slider "Pantserschip Evertsen 1909" Schepen028>>
* <<slider "Pantserschip Evertsen 1909" Schepen150>>
* <<slider "Pantserschip Evertsen 1911" Schepen026>>
* <<slider "Pantserschip Evertsen 1911" Schepen027>>
* <<slider "Pantserschip Evertsen 1911" Schepen025>>
{{||$:/_ship_template}}
* <<slider "Pantserschip Evertsen ca. 1935" Schepen078>>
Ex-Britse ''Scourge'' (G01).
{{||$:/_ship_template}}
* <<slider "Fregat Evertsen ca. 1985" Schepen187>>
In de periode juli 1979 t/m december 1981 werd het fregat te Den helder gemoderniseerd.<br>
Na de uitdienstname in 1989 is het schip verkocht aan Indonesië en daar in dienst gesteld als ''Kabdul Halim Perdanakusuma''.
{{||$:/_ship_template}}
* <<slider "Fregat Evertsen 2008" Schepen275>>
ex IJM 48, Lord Palmerston, Tenby (1913).<br>De Ewald werd op 4 september 1939 gevorderd, verbouwd en in dienst gesteld als Boeienschip 2. Het schip kon in mei 1940 ontkomen naar Engeland en werd te Falmouth ingericht als hulpmijnenveger. Op 15 oktober 1940 werd het schip in dienst gesteld. De aangepaste trawler deed dienst in Britse wateren tot het op 21 april 1943 uit dienst gesteld en overgedragen werd aan de Britse marine. In 1945 is het schip teruggegaan naar de oorspronkelijke eigenaar.
!! Extra info
<<tabs "
[[Gemilitariseerde Gouvernements Marine]]
[[Hulpmijnenvegers e.d.]]
" "" "">>
* 2015-11_The_Royal_Netherlands_Navy_in_Focus.pdf (Backup/Foto_Amsterdam/Schepen)
* Royal_Dutch_Nay_silhouets.jpg (Backup/Foto_Amsterdam/Schepen)
* [[Illustrated guide Royal Neth. Navy|http://www.shipbucket.com/forums/viewtopic.php?f=5&t=751&sid=37a68e7ce45f8d4dae65285c02e36fae]] zie ook: [[Illustrated_guide_to_the_Royal_Netherlands_Navy]]
[[illustrated guide|http://www.shipbucket.com/forums/viewtopic.php?t=751]]
!!! Auxiliary, Training and Hydrographic Vessels
!!!! Y8200 Class:
* Y8200 – Harbor Communication Vessel
* Y8201 – Harbor Communication Vessel
* Y8202 – Harbor Communication Vessel
* Y8203 – Harbor Communication Vessel
* Y8005 – Nieuwediep – press and VIP vessel
* WM 1-9001 – Jonge Prins – Admiral’s Sloop
!!! Landing Craft:
* L9525 – landing craft utility (LCU)
* L9526 – landing craft utility (LCU)
* L9527 – landing craft utility (LCU)
* L9528 – landing craft utility (LCU)
* L9529 – landing craft utility (LCU)
!!! Tugboats
!!!! Linge class:
* A 874 – Linge – Coastal Tug
* A 875 – Regge – Coastal Tug
* A 876 – Hunze – Coastal Tug
* A 877 – Rotte – Coastal Tug
* A 878 – Gouwe – Coastal Tug
!!!! Breezand Class:
* Y8018 – Breezand – Harbor Tug
* Y8019 – Balgzand – Harbor Tug
!!!! Westwal Class:
* Y8059 – Westwal – Harbor Tug
* Y8058 – Zuidwal – Harbor Tug
* Y8057 – Malzwin – Harbor Tug
* Y8056 – Wierbalg – Harbor Tug
* Y8055 – Schelde – Harbor Tug
{{||$:/_plane_template}}
* <<slider "Fairey IIID 1925" Vliegtuig206>>
* <<slider "Fairey IIID 1926" Vliegtuig156>>
!! Fairey
||| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[IIID|Fairey IIID]]|{{Fairey IIID!!soort}}| 4| F1 - F4| {{Fairey IIID!!per}}|
{{||$:/_plane_template}}
* <<slider "Farman HF.22 1914" Vliegtuig128>>
* <<slider "Farman HF.22 ca. 1915" Vliegtuig133>>
* <<slider "Farman HF.22 ca. 1915" Vliegtuig134>>
* <<slider "Farman HF.22 1916" Vliegtuig142>>
* <<slider "Farman HF.22 1917" Vliegtuig161>>
Het allereerste vliegtuig van de MLD. @@.c Geen watervliegtuig!@@
!! Farman
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[HF.22|Farman HF.22]]|{{Farman HF.22!!soort}}| 7|MA1, M1 - M6<br>(later: A1 - A6)| {{Farman HF.22!!per}} |
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Fazant 1935" Schepen439>>
In 1932 in dienst van de {{GM}}. Werd gestationeerd te Menado, Noord-Celebes. Ten tijde van de militarisering werd het schip afgelost door het opnemingsvaartuig [[Willebrord Snellius (1929)]]. De Fazant werd net als de [[Merel (1928)]], als moederschip voor de MLD, ingezet als bewakingsvaartuig vanuit station Sedanau. Later kreeg de Fazant dezelfde functie toegewezen aan de noordgrens van de Molukken. Eind 1941 waren alle aan de Fazant toegewezen vliegboten verloren gegaan en werd het schip uit de gevarenzone teruggetrokken. Vanaf 19 februari 1942 werd het schip toegevoegd aan de Bewakingsdienst West-Java. Op 1 maart werd te Tandjong Priok nog gebunkerd, maar aan uitwijken kwam het schip niet meer toe. De Fazant werd in de loop van die avond door de eigen bemanning in de haven tot zinken gebracht.
Gebaseerd op de [[Curtiss H-12]], maar met verbeterde rompvorm.<br>
De Britse patrouillevliegboot Curtiss Felixstowe F.2A (N4551) werd 04-06-1918 op Terschelling geïnterneerd en daarna in dienst genomen als L-1.
<<popup "Ferdinand Porsche" FerdinandPorsche>> (3 september 1875 – 30 januari 1951) werd geboren in Maffersdorf in het toenmalig Oostenrijk-Hongaarse Bohemen (tegenwoordig Vratislavice nad Nisou in Tsjechië).<br>
Zijn vader had daar een metaalsmederij. Ferdinand werkte overdag bij zijn vader en bezocht 's avonds de Keizerlijke Technische School in Reichenberg waar hij naast mechanische zaken ook met elektriciteit in aanraking kwam. Dat interesseerde hem dermate dat hij thuis aan het experimenteren sloeg zijn en zijn ouderlijk huis van van een elektrisch systeem voorzag.<br>
Ferdinand voelde weinig voor de smederij en vertrok als 18-jarige naar Wenen waar hij in dienst trad van de Vereinigte Elektrizitäts-AG Béla Egger. 's avonds volgde hij lessen aan de Weense Technische universiteit.<br>
Bij Béla Egger onderkende men zijn kwaliteiten en hij klom snel op; uiteindelijk werd hij manager van de testafdeling. Gedurende de 5 jaar (1893 - 1898) bij Béla Egger ontwikkelde hij ook zijn elektrische naafmotor.<br>
In 1898 werd hij door Ludwig Lohner als hoofdontwerper aangenomen voor de ontwikkeling van elektrische auto's.
<<<
Jakob Lohner & Co was een belangrijke koetsbouwer te Wenen, hofleverancier van keizer Franz Joseph I en de koningen van Engeland, Zweden en Roemenië. Jacob's zoon Ludwig was in 1896 begonnen auto's te bouwen. Naast benzineauto's werden ook elektrische auto's ontwikkeld in samenwerking met Béla Egger.
<<<
In de 7 jaar (1898 - 1905) bij Lohner ontwikkelde Ferdinand o.a. de Egger-Lohner Phaeton C 2, de 4-wiel-aangedreven ~Toujours-Contente (een 'special' en de eerste hybride auto ter wereld), de Lohner-Porsche Semper Vivus (prodktie-hybride) en de Lohner-Porsche Mixte, een verdere ontwikkeling van de Semper Vivus.<br>
In 1905 volde Ferdinand Paul Daimler op als technisch directeur van Austro-Daimler, een dochter van het duitse Daimler-Motoren-Gesellschaft.<br>
Ferdinand Porsche stond aan de wieg van Volkswagen (hij was medeontwerper van de Volkswagen 'Kever') en het automerk Porsche en behoorde tot de Oostenrijkse school van auto-ontwerpers.<br>
In 1938 ontving hij de Nationale Duitse Prijs voor Kunst en Wetenschap, de 'Duitse Nobelprijs' en de daaraan verbonden 100 000 Rijksmark.<br>
In de Tweede Wereldoorlog ontwierp Porsche een aantal tanks die geen van alle een succes waren. Daarnaast ontwierp hij ook militaire voertuigen die wél een succes waren.<br>
Hij was lid van de Duitse nazipartij en de SS, hetgeen in 2013 na protesten leidde tot de verwijdering van zijn naam op borden in zijn geboorteplaats.
[img[Ferdinand Porsche|Images/Ferdinand_Porsche.jpg]]<br>
//Ferdinand Porsche//
!! Filmpjes van watervliegtuigen
|Watervliegtuigen |tijd (min)|opmerkingen |h
|[[Aankomst 6x Dornier Wal te Morokrembangan|Video_Dornier_Wal]]| 2:58 |vliegkamp bij Soerabaja|
|[[Dornier Do24k|Video_Dornier_Do24k]]| 10:03 ||
|[[Aankomst Dornier Do-X te Amsterdam (1930)|Video_Dornier_Do-X_1]]| 3:58 ||
|[[Rondreis Dornier Do-X (1930-1932)|Video_Dornier_Do-X_2]]| 10:31 |<<popup "Schema rondreis" Schema_rondreis_Dornier_Do-X>>|
|[[Nieuws uit Nieuw-Guinea (Consolidated PBY-5A Catalina)|Video_Nieuw-Guinea]]| 2:03 ||
|[[De nieuwste Dornier (Seastar)|Video_Dornier_Seastar]]| 2:27 ||
|[[Catalina PH-PBY (16-218) bij 'Seaplane Meeting Lucerne 2013'|Video_Catalina]]| 4:37 ||
|[[Catalina PH-PBY Splash & Go impressie|Video PBY-5]]| 5:38 ||
|[[Neuslanding Catalina PH-PBY Lelystad|Video_Catalina2]]| 1:48 ||
|[[Savoia Marchetti S.55|Video Savoia Marchetti]]| 1:51 ||
|[[Hughes H-4 Hercules|Video Hughes H-4 Hercules]]| 12:27 ||
|[[Martin Mars|Video Flying Tankers original documentary Martin Mars]]| 10:41 ||
|[[The Giants - flying boats|Video large flying boats]]| 51:24 ||
|[[Ryan STM-2S vlucht]]| 5:05 ||
|[[Ryan STM-2S vlucht ca. 2003]]| 1:28 ||
!! Walvisvaart
|Walvisvaart |tijd (min)| opmerkingen |h
|[[Vertrek van de Willem Barendsz (I) |https://www.vpro.nl/speel~WO_VPRO_039900~polygoon-27-oktober-1946-3-min-vertrek-willem-barendsz~.html]]| 3:09 | @@externe link@@ |
|[[Tewaterlating Willem Barendsz II|Video_walvis4]]| 5.33 | |
|[[De laatste walvisvaarders|Video_walvis1]]| 25:46 | |
|[[Walvis in zicht (1)|Video_walvis2]]| 30:21 | |
|[[Walvis in zicht (1)|Video_walvis3]]| 37:38 | |
De handmatig te maken tabellen voor schepen volgens pennantnummer zijn arbeidsintensief en hebben grote kans op fouten. Vandaar mijn vraag in de [[Google groups|https://groups.google.com/d/msg/tiddlywiki/STGM4F7Op_w/BB2V6nsFBQAJ]] voor automatische filtering.<br>
Hier de oplossing van Mark S. geïmplementeerd met:
* $:/core/modules/filters/regexps.js (niet aanwezig in core: TW5.1.20)
* $:/_pennant_links_macro
* $:/_pennantnummer_template
* $:/_pennantnummer_details_template
There is a wikitext syntax for images eg: `[img[Motovun Jack.jpg]]`. But what if I want to center the image. Or if I want the image left or right aligned and the text should flow around the image.
There are 3 macros now.
* `<<image-left "Motovun Jack.jpg">>`
* `<<image-center "Motovun Jack.jpg">>`
* `<<image-right "Motovun Jack.jpg">>`
<<image-left "Motovun Jack.jpg" caption:"//floating image//">>
```
<<image-left "Motovun Jack.jpg">>
```
Activates a `float-left` CSS rule for the image container.
If you want to add a caption to the image, just use:
```
<<image-left "Motovun Jack.jpg" caption:"//floating image//">>
```
@@.image-text
As you can see, inline formatting rules can be used.
@@
The image below will be centred and slightly bigger. There is no text flow around the image. The macro is used like this:
```
<<image-center "Motovun Jack.jpg" caption:"centered image" width:"50%">>
```
<<image-center "Motovun Jack.jpg" caption:"centered image" width:"50%">>
<<image-right "Motovun Jack.jpg" caption:"''float right''" tooltip:"Motovun Jack - The TiddlyWiki Mascot">>
This image uses:
```
<<image-right "Motovun Jack.jpg" caption:"''float right''" tooltip:"Motovun Jack - The TiddlyWiki Mascot">>
```
@@.image-text
Since "float-left" and "float-right" CSS rules have some effects on the text flow, we need a mechanism, that disables this effect.
So we need to assign a special class to the last paragraph of this page: eg: `@@.image-text ... @@`
@@
.image-float-right {
float: right;
text-align: center;
padding: 0.5em 0 1em 1em;
}
.image-float-left {
float: left;
text-align: center;
padding: 0.5em 1em 1em 0;
}
.image-center {
margin-left: auto;
margin-right: auto;
text-align:center;
}
.image-text:after,
.clearfix:after {
content: "";
display: table;
clear: both;
}
\define image-left(name, width:"33%", tooltip, caption)
<div class="image-float-left" style="width:$width$">
[img width="100%" [$tooltip$|$name$]]
$caption$
</div>
\end
\define image-right(name, width:"33%", tooltip, caption)
<div class="image-float-right" style="width:$width$">
[img width="100%" [$tooltip$|$name$]]
$caption$
</div>
\end
\define image-center(name, width:"33%", tooltip, caption)
<div class="image-center" style="width:$width$">
[img width="100%" [$tooltip$|$name$]]
$caption$
</div>
\end
```
\define image-left(name, width:"33%", tooltip, caption)
<div class="image-float-left" style="width:$width$">
[img width="100%" [$tooltip$|$name$]]
$caption$
</div>
\end
\define image-right(name, width:"33%", tooltip, caption)
<div class="image-float-right" style="width:$width$">
[img width="100%" [$tooltip$|$name$]]
$caption$
</div>
\end
\define image-center(name, width:"33%", tooltip, caption)
<div class="image-center" style="width:$width$">
[img width="100%" [$tooltip$|$name$]]
$caption$
</div>
\end
```
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Flores ca. 1935" Schepen111>>
* <<slider "Logementsschip Flores ca. 1967" Schepen240>>
In 1950 geclassificeerd als fregat.<br>
In 1955 omgebouwd tot logementsschip te Vlissingen (A877).<br>
Van 1960-1965 tijdelijk omgedoopt in Van Speijk.<br>
<<popup "Naam Van Speijk""Van Speijk_info">><br>
!!! Fokker, onze bekendste vliegtuigbouwer.
[[Wikipedia|https://nl.wikipedia.org/wiki/Fokker_Technologies]]
Heeft naast civiele toestellen ook de nodige militaire vliegtuigen gebouwd:
{{Fokker types}}
{{||$:/_plane_template}}
* <<slider "Fokker B.I 1922" Vliegtuig105>>
* <<slider "Fokker B.I 1922" Vliegtuig107>>
* <<slider "Fokker B.I 1922" Vliegtuig108>>
Tweedekker aluminium amfibische vliegboot met 3 open cockpits en duwschroef.<br>
Vloog een aantal jaren (tot tevredenheid) in Nederlands-Indië maar dit leidde niet tot vervolgorders.
{{||$:/_plane_template}}
* <<slider "Fokker B.II 1923" Vliegtuig157>>
* <<slider "Fokker B.II 1923" Vliegtuig207>>
Tweedekker aluminium vliegboot.<br>
Prototype voor test door de MLD; voldeed niet aan eisen.
{{||$:/_plane_template}}
* <<slider "Fokker C.Iw 1919" Vliegtuig158>>
* <<slider "Fokker C.I ca. 1928" Vliegtuig159>>
{{||$:/_plane_template}}
* <<slider "Fokker C.Vw 1926" Vliegtuig032>>
* <<slider "Fokker C.VC 1938" Vliegtuig208>>
De MLD en de ML-KNIL hebben met de C.V. gevlogen.<br>
''6 C.Vw 2-persoons 'trainers' (Z-1 - Z-6), in 1925 geleverd; later omgebouwd tot C.VC 'normale' vliegtuigen (nooit als watervliegtuig operationeel geweest!).''<br>
6 C.VC trainers (''Z-7 - Z-12''), in 1925 geleverd.<br>
12 C.VE 2-persoons bommenwerpers (''Z-13 - Z-24''), in 1926 - 1927 geleverd.<br>
6 C.VD in 1927 besteld/gereserveerd (J-1 - J-6), contract overgenomen door KNIL.
{{||$:/_plane_template}}
* <<slider "Fokker C.VIIIw ca. 1929" Vliegtuig102>>
* <<slider "Fokker C.VIIIw ca. 1929" Vliegtuig103>>
* <<slider "Fokker C.VIIIw en een C.VIIw (V-11) ca. 1930" Vliegtuig033>>
* <<slider "Start escadrille Fokker C.VIIIw" Vliegtuig153>>
Eind jaren twintig ontworpen voor de Luchtvaartafdeling (LVA) als strategische verkenner, maar bleek te log en te langzaam voor deze taak onder meer doordat Fokker - op verzoek van de LVA - een grote romp had ontworpen.<br>
Het toestel bleek voor de MLD echter uitstekend geschikt als opleidingsvliegtuig voor waarnemers en verkenners.<br>In die hoedanigheid werd het gevlogen door een piloot, terwijl een instructeur en een leerling zich op het waarnemen konden concentreren.
{{||$:/_plane_template}}
* <<slider "Fokker C.VIIIw en een C.VIIw (V-11) ca. 1930" Vliegtuig033>>
* <<slider "Fokker C.VIIw 1937" Vliegtuig109>>
{{||$:/_plane_template}}
* <<slider "Fokker C.XIVw 1939" Vliegtuig106>>
* <<slider "Fokker C.XIVw 1939"Vliegtuig130>>
* <<slider "Fokker C.XIVw 1939" Vliegtuig164>>
Het vliegtuig was bedoeld om de inmiddels verouderde C.VIIw af te lossen. In 1939 zijn er 24 geleverd aan de MLD (''F-1 - F-24'' waarvan 11 voor Nederlands-Indië). Na de meidagen in 1940 zijn er 11 ontkomen naar Engeland en doorgestuurd naar Nederlands-Indië (als opleidingsvliegtuig bij de MLD).<br>
Alle vliegtuigen werden tijdens de Japanse invasie vernietigd.
{{||$:/_plane_template}}
* <<slider "Fokker C.XIw 1937" Vliegtuig010>>
* <<slider "Fokker C.XIw 1937" Vliegtuig011>>
* <<slider "Fokker C.XIw ca. 1938" Vliegtuig005>>
* <<slider "Fokker C.XIw ca. 1938" Vliegtuig006>>
* <<slider "Fokker C.XIw 1938" Vliegtuig012>>
* <<slider "Fokker C.XIw 1938" Vliegtuig013>>
* <<slider "Fokker C.XIw 1938" Vliegtuig014>>
* <<slider "Fokker C.XIw 1938" Vliegtuig015>>
* <<slider "Fokker C.XIw 1938" Vliegtuig016>>
{{||$:/_plane_template}}
* <<slider "Fokker D.VII ca. 1925" Vliegtuig177>>
* <<slider "Fokker D.VII ca. 1928" Vliegtuig223>>
Fokker D.VIIF voorzien van 185pk BMW motor.
{{||$:/_plane_template}}
* <<slider "Fokker S.III 1924" Vliegtuig174>>
{{||$:/_plane_template}}
* <<slider "Fokker S.IX (MLD) 1937" Vliegtuig167>>
* <<slider "Fokker S.IX (LVA) 1939" Vliegtuig166>>
De Fokker S.IX werd besteld als opvolger van de Fokker S.III. Alle 15 door de MLD bestelde toestellen waren voorzien van Menasco Buccaneer motoren en werden voor het uitbreken van de oorlog afgeleverd. Ze waren alle gestationeerd op vliegkamp 'De Kooy' en gingen daar tijdens de bombardementen verloren.
> De 20 toestellen voor de LVA waren voorzien van geïmporteerde Armstrong Siddeley Genet Major motoren; Kromhout zou deze motoren in licentie bouwen maar had opstartproblemen.
{{||$:/_plane_template}}
* <<slider "Fokker T.IV 1927" Vliegtuig110>>
* <<slider "Cockpit Fokker T.IV" Vliegtuig152>>
* <<slider "Fokker T.IV 1937" Vliegtuig021>>
Later een upgrade met sterkere Wright Cyclone motor (2x 560kW, als in IVa).
{{||$:/_plane_template}}
* <<slider "Fokker T.IVa 1937" Vliegtuig017>>
* <<slider "Fokker T.IVa 1938" Vliegtuig209>>
Tegen het midden van de jaren dertig ontstond de behoefte aan een verbeterde uitvoering.<br>Fokker ontwikkelde een nieuwere uitvoering van de T-IV, de T-IVa.<br>De verbeteringen die werden doorgevoerd bestonden onder andere uit het plaatsen van krachtigere motoren en het toevoegen van een overdekte cockpit en geschutskoepels.
{{||$:/_plane_template}}
* <<slider "Fokker T.VIIIw 1939" Vliegtuig164>>
* <<slider "Fokker T.VIIIw ca. 1940" Vliegtuig007>>
* <<slider "Fokker T.VIIIw ca. 1940" Vliegtuig029>>
* <<slider "Fokker T.VIIIw ca. 1940" Vliegtuig129>>
Totaal 36 besteld, uiteindelijk slechts 11 geleverd vanwege uitbreken WWII.
|Type |rol |aantal |in dienst bij |dienstperiode |h
| C.IV|verkenningsvliegtuig | 30| LVA| 1923-1938|
| ''S-III''|''lesvliegtuig'' | 18| ''MLD''| 1923-1938|
| ''C.V''|varianten: verkenner, bommenwerper | 71| LVA| 1925-1940|
|~|watervliegtuig ''C.Vw'' ''^^1^^''| ?| ''MLD''| ? |
| S.IV|lesvliegtuig| 30| LVA| 1924-1940|
| ''T.IV''|''verkenningsbommenwerper ^^1^^'' | 12| ''MLD''| 1927-193x|
| ''T.IVa''|''verkenningsbommenwerper ^^1^^'' | 12| ''MLD''| 1935-1942|
| ''C.VIIw''|''verkenningsvliegtuig ^^1^^''| 30| ''MLD''| 1932-194x|
| D.XVI|jachtvliegtuig| 12| LVA| 1929-?|
| ''C.VIIIw''|''lesvliegtuig ^^1^^''| 9| ''MLD''| 1930-1940|
| C.IX|verkenner/dagbommenwerper| 5| LVA| 1931-1940|
| D.XVII|jachtvliegtuig| 10| LVA| 1934-1940|
| C.X|verkenningsvliegtuig| >16| LVA| 1934-1940|
| ''C.XIw''|''verkenningsvliegtuig ^^1^^'' | 14| ''MLD''| 1938-1942|
| D.XXI|jachtvliegtuig| 36| LVA| 1936-1948?|
| G1|jachtkruiser| 36+10| LVA| 1936-1940?|
| ''T.VIIIw''|''torpedobommenwerper/verkenner ^^1^^''| 36| ''MLD''| 1938-?|
^^1^^ watervliegtuig
|LVA|toenmalige Luchtvaart Afdeling van de landmacht|
|MLD|Marine Luchtvaart Dienst|
!! Fokker
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[C.I|Fokker C.I]]|{{Fokker C.I!!soort}}| 16| F1 - F16 | {{Fokker C.I!!per}} |
|[[C.VC|Fokker C.V]] |{{Fokker C.V!!soort}}| 24| Z-1 - Z-24 | {{Fokker C.V!!per}} |
|[[D.VII|Fokker D.VII]] |{{Fokker D.VII!!soort}}| 20 (21) ^^1^^| D20 - D40 | {{Fokker D.VII!!per}} |
|[[S.III|Fokker S.III]]|{{Fokker S.III!!soort}}| 9| S10 - S19 | {{Fokker S.III!!per}} |
|[[S.IX|Fokker S.IX]]|{{Fokker S.IX!!soort}}| 15| S20 - S34 | {{Fokker S.IX!!per}} |
^^1^^ 20 besteld/geleverd (D20 - D39); D40 samengesteld uit reserve-onderdelen.
!! Fokker
||| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
| [[B.I|Fokker B.I]]|{{Fokker B.I!!soort}}| 1| FB1| {{Fokker B.I!!per}}|
| [[B.II|Fokker B.II]]|{{Fokker B.II!!soort}}| 1| -| {{Fokker B.II!!per}}|
| [[C.Vw|Fokker C.V]]|{{Fokker C.V!!soort}} | 6| Z-1 - Z-6| {{Fokker C.V!!per}}|
| [[T.IV|Fokker T.IV]]|{{Fokker T.IVa!!soort}} | 12| T-1 - T-12| {{Fokker T.IVa!!per}}|
| [[T.IVa|Fokker T.IVa]]|{{Fokker T.IVa!!soort}} | 12| T-3 - T-24| {{Fokker T.IVa!!per}}|
| [[C.VIIw|Fokker C.VIIw]]|{{Fokker C.VIIw!!soort}}| 12<br>18| V-1 - V-12<br>L-1 - L-18| {{Fokker C.VIIw!!per}}|
| [[C.VIIIw|Fokker C.VIIIw]]|{{Fokker C.VIIIw!!soort}}| 9| G-1 - G-9| {{Fokker C.VIIIw!!per}}|
| [[C.XIw|Fokker C.XIw]]|{{Fokker C.XIw!!soort}}| 14| W-1 - W-15| {{Fokker C.XIw!!per}}|
| [[C.XIVw|Fokker C.XIVw]]|{{Fokker C.XIVw!!soort}}| 24| F-1 - F-24| {{Fokker C.XIVw!!per}}|
| [[T.VIIIw|Fokker T.VIIIw]]|{{Fokker T.VIIIw!!soort}}| 11| R-1 - R-11| {{Fokker T.VIIIw!!per}}|
> Voor uitgebreidere registratiegegevens zie het betreffende Fokker type.
|Type |aantal |registratie |dienstperiode |opmerkingen |h
|Fokker A.1 (M.8)|1|LA34|1916-1917|geïnterneerd|
|[[Fokker B.I]]|1|FB1|1923-1929|@@.C MLD@@|
|[[Fokker B.II]]|1|?|?|@@.C MLD@@|
|[[Fokker C.I]]|60+5|485-544/545-549|1920-1938|LVA|
|~|16|@@.h F1-F16@@|1920-1936|@@.C MLD@@|
|Fokker C.IV|30+1|550-579/580|1923-1936|LVA|
|~|10|FC411-FC420|?|ML-KNIL|
|Fokker C.IX|5|661-665|-1940|LVA|
|[[Fokker C.V]]|12|Z1-Z12|1925-1939|@@.C MLD@@|
|~|27|301-327|1926-1940|LVA|
|~|5|645-649|1935-1940|LVA|
|Fokker C.VD|9|F.C.VD 441-449|1930-<1940|ML-KNIL|
|[[Fokker C.VE|Fokker C.V]]|22|Z13-Z24|1926-1938|@@.C MLD@@|
|~|16+1|F.C.VE 425-440|1928-1937|ML-KNIL|
|Fokker C.VI|33|590-622|1925-1940|LVA|
|Fokker C.VIII|1|651|1928-1940|LVA|
|[[Fokker C.VIIIw]]|9|G1-G9|1930-1940|@@.C MLD@@|
|[[Fokker C.VIIw]]|30|V1-V12, L1-L18|1928-1942|@@.C MLD@@|
|Fokker C.X|20|700-719|1935-1940|LVA|
|~|14|FCx450-463|1935-1936|ML-KNIL|
|[[Fokker C.XIVw]]|24|@@.h F1-F24@@|1939-1942|@@.C MLD@@|
|[[Fokker C.XIw]]|15|W1-W15|1935-1942|@@.C MLD@@|
|Fokker D.C.I|10|F.D.401-410|1925-1934|ML-KNIL|
|Fokker D.III|10|F200-F209|1917-1921|LVA|
|[[Fokker D.VII]]|6/20+2|227-229/250-271|1918-1938|LVA|
|~|20+1|D20-D40|1920-1937|@@.C MLD@@|
|~|6|F301-F306|1920-1927|ML-KNIL|
|Fokker D.XVI|20?|275-289|1929-1940|LVA|
|Fokker D.XVII|11|201-211|1939-1940|LVA|
|Fokker D.XXI|36|212-247|1938-1940|LVA|
|~|1|FD-322|1937-1942?|ML-KNIL|
|Fokker F.VII/3m|3|801-803|-1940|LVA|
|~|2|F.T.A.1-2|1936-?|ML-KNIL|
|Fokker G.I (Mercury)|36|300-335|1939-1940|LVA|
|Fokker G.I (Wasp)|26|340-365|1940|LVA|
|Fokker S.11|39|E1-E39|1949-196x|Klu|
|~|9|174-179/197-199|1970-1973|@@.C MLD@@|
|Fokker S.14|20|L1-L20|1955-1967|KLu|
|Fokker S.II|15|84-98|1923-~1935|LVA||
|[[Fokker S.III]]|19|S1-S19|1924-1939|@@.C MLD@@|
|Fokker S.IV||99-128|1924-1940|LVA|
|~|1|F.S.5|?|ML-KNIL|
|[[Fokker S.IX]]|20|31-50|1938-1940|LVA|
|~|15|S20-S34|1938-1940|@@.C MLD@@|
|[[Fokker T.IVw|Fokker T.IV]]|12|T1-T12|1927-1940|@@.C MLD@@|
|[[Fokker T.IVa]]|12|T13-T24|1936-1942|@@.C MLD@@|
|Fokker T.V|16|850-865|1938-1940|LVA|
|[[Fokker T.VIIIw]]|11|R1-R11|1939-1940|@@.C MLD@@|
Op 30 oktober 1923 werd de Fomalhaut in dienst gesteld van de Gouvernements Marine en toegewezen aan station Amboina in de Molukken. Na de militarisering van 1939 bleef de Fomalhaut op post in de Molukken. Op 8 februari 1942 kreeg Hr. Ms. Fomalhaut, samen met Hr. Ms. Albatros, opdracht om de vrouwen en kinderen van de opvarenden aan boord te nemen en via Koepang op te komen naar Java. Op het laatste traject werd een tanker van de KPM geëscorteerd. Op 24 februari liep de Fomalhaut schade op tijdens een Japanse luchtaanval op Soerabaja. Op 2 maart werd het schip door de eigen bemanning tot zinken gebracht op de rede van Soerabaja, tussen het Marine Etablissement en het Oostervaarwater in.
''N.B.:'' Interne [[links|Links]] werken alleen door er rechts op te klikken ('Open link in nieuwe tab').
<<tabs "
[[hAuto02]]
[[hAuto03]]
" "
[[hAuto02]]
" "" "
tc-vertical
">>
!! ATAX taxi's
<<tabs "
[[Transport14]]
[[ATAX13]]
[[ATAX14]]
[[ATAX15]]
[[Transport03]]
[[J.L. Scherpenisse05]]
[[Transport12]]
[[Transport01]]
[[Transport02]]
[[Prenten88]]
" "
[[Transport14]]
" "" "
tc-vertical
">>
!! Foto's vliegkamp De Kooy
<<tabs "[tag[MVKDK]sort[jaar]]">>
!! Foto's vliegkamp De Mok
<<tabs "[tag[MVKDM]sort[jaar]]">>
!! Andere elektrische auto's
<<tabs "
[[eAuto09a]]
[[eAuto03a]]
[[eAuto08]]
[[eAuto12]]
[[La Jamais Contente_a]]
[[eAuto15]]
[[eAuto05]]
[[eAuto16]]
[[eAuto01]]
[[eAuto02]]
[[eAuto13]]
[[eAuto14]]
[[eAuto06]]
[[eAuto17]]
[[eAuto07]]
[[eAuto10]]
" "
[[eAuto09]]
" "" "
tc-vertical
">>
!! Foto's elektrische auto's
<<tabs "
[[Foto's ATAX taxi's]]
[[Foto's stadsreiniging]]
[[Foto's Porsche]]
[[Foto's eAuto's]]
" "
[[Foto's ATAX taxi's]]
" "" "
">>
<<tabs ""
"ATAX " "" "Taxi's1"
"Stadsreiniging " "" "Stadsreiniging3A"
"Porsche " "" "Foto's eAuto's Porsche"
"Andere auto's " "" "Foto's eAuto's"
>>
!! Foto's hybride auto's
<<tabs "
[[Foto's Lohner-Porsche1]]
[[Foto's Lohner-Porsche2]]
[[Foto's Woods]]
[[Foto's andere hybrides]]
" "
[[Foto's Lohner-Porsche1]]
" "" "
">>
<<tabs "
[[Lohner-Porsche06]]
[[Lohner-Porsche14]]
[[Lohner-Porsche_Mixte01]]
[[hAuto04]]
[[Lohner-Porsche07]]
[[Lohner-Porsche10]]
[[Lohner-Porsche13]]
[[Lohner-Porsche11]]
[[Lohner-Porsche12]]
[[Lohner-Porsche03]]
[[Lohner-Porsche04]]
[[Lohner-Porsche09]]
[[Lohner-Porsche08]]
" "
[[Lohner-Porsche03]]
" "" "
tc-vertical
">>
<<tabs "
[[hAuto05]]
[[hAuto06]]
[[hAuto07]]
[[Lohner-Porsche15]]
[[Lohner-Porsche_Mixte02]]
[[Lohner-Porsche_Mixte03]]
" "
[[hAuto05]]
" "" "
tc-vertical
">>
!! Porsche - elektrisch
<<tabs "
[[Egger-Lohner_C2_orig]]
[[Egger-Lohner3]]
[[Egger-Lohner_C2]]
[[Lohner-Porsche05]]
[[Egger-Lohner1]]
[[Egger-Lohner2]]
[[Egger-Lohner5]]
[[Egger-Lohner4]]
[[Lohner-Porsche01]]
[[Lohner-Porsche02]]
" "
[[Egger-Lohner_C2_orig]]
" "" "
tc-vertical
">>
!! Foto's vliegkamp/luchthaven Schellingwoude
<<tabs "[tag[MVKS]sort[jaar]]">>
!! Foto's vliegkamp Souburg/vliegveld Vlissingen
<<tabs "[tag[MVKSV]sort[jaar]]">>
!! Stadsreiniging - elektrisch
<<tabs "
[[Stadsreiniging3-09]]
[[Stadsreiniging3-05]]
[[Stadsreiniging3-06]]
[[Stadsreiniging3-07]]
[[Stadsreiniging6-03]]
[[Stadsreiniging3-11]]
[[Stadsreiniging3-01]]
[[Stadsreiniging3-03]]
[[Stadsreiniging3-02]]
[[Stadsreiniging3-04]]
[[Stadsreiniging3-08]]
[[Stadsreiniging3-10]]
[[Stadsreiniging3-12]]
" "
[[Stadsreiniging3-09]]
" "" "
tc-vertical
">>
!! Consolidated
<<tabs "[tag[Consolidated]sort[jaar]]">>
!! Dornier
<<tabs "[tag[Dornier]sort[jaar]]">>
!! Duikboten
<<tabs "[tag[duikbootfoto]sort[jaar]]">>
!! Escorteschepen
<<tabs "[tag[escorteschipfoto]sort[jaar]]">>
!! Fokker
<<tabs "[tag[Fokker]sort[jaar]]">>
!! Fregatten
<<tabs "[tag[fregatfoto]sort[jaar]]">>
!! Gouvernementsschepen (gemilitariseerd)
<<tabs "[tag[gmfoto]sort[jaar]]">>
!! Heinkel
<<tabs "[tag[Heinkel]sort[jaar]]">>
!! Kanonneerboten
<<tabs "[tag[kanonneerbootfoto]sort[jaar]]">>
!! Korvetten
<<tabs "[tag[korvetfoto]sort[jaar]]">>
!! Kruisers
<<tabs "[tag[kruiserfoto]sort[jaar]]">>
!! Foto's van marineschepen
<<tabs "[tag[schipsoortfoto]sort[]]" "" "" "tc-vertical">>
!! Martin
<<tabs "[tag[Martin]sort[jaar]]">>
!! Mijnenvegers
<<tabs "[tag[mijnenjagerfoto]sort[jaar]]">>
!! Mijnenleggers
<<tabs "[tag[mijnenleggerfoto]sort[jaar]]">>
!! Mijnenvegers
<<tabs "[tag[mijnenvegerfoto]sort[jaar]]">>
!! Monitoren
<<tabs "[tag[monitorfoto]sort[jaar]]">>
!! Ondersteuningsschepen
<<tabs "[tag[ondersteuningsschipfoto]sort[jaar]]">>
!! Torpedobootjagers
<<tabs "[tag[onderzeebootjagerfoto]sort[jaar]]">>
!! Pantserdekschepen
<<tabs "[tag[pantserdekschipfoto]sort[jaar]]">>
!! Pantserkruisers
<<tabs "[tag[pantserkruiserfoto]sort[jaar]]">>
!! Pantserschepen
<<tabs "[tag[pantserschipfoto]sort[jaar]]">>
!! Patrouilleschepen
<<tabs "[tag[patrouilleschipfoto]sort[jaar]]">>
!! Ramtorenschepen
<<tabs "[tag[ramtorenschipfoto]sort[jaar]]">>
!! Ryan
<<tabs "[tag[Ryan]sort[jaar]]">>
!! Martin
<<tabs "[tag[Saunders-Roe]sort[jaar]]">>
!! Savoia-Marchetti
<<tabs "[tag[Savoia]sort[jaar]]">>
!! Schroefstoomschepen
<<tabs "[tag[schroefstoomschipfoto]sort[jaar]]">>
!! Supermarine
<<tabs "[tag[Supermarine]sort[jaar]]">>
!! Torpedobootjagers
<<tabs "[tag[torpedobootjagerfoto]sort[jaar]]">>
!! Torpedoboten
<<tabs "[tag[torpedobootfoto]sort[jaar]]">>
!! Torpedoboten
<<tabs "[tag[torpedomotorbootfoto]sort[jaar]]">>
!! Van Berkel
<<tabs "[tag[VanBerkel]sort[jaar]]">>
!! Vliegdekschepen
<<tabs "[tag[vliegdekschipfoto]sort[jaar]]">>
!! Foto's van watervliegtuigen
<<tabs "[tag[watervliegtuig]sort[]]" "" "" "tc-vertical">>
!! Foto's vliegkamp Veere
<<tabs "[tag[MVKV]sort[jaar]]">>
<<tabs "
Schepen315
Schepen316
Schepen318
Schepen311
Schepen313
Schepen312
Schepen014
Schepen317
Vliegtuig002
Vliegtuig018
Schepen314
Schepen070
Schepen059
" "
Schepen315
" "" "
tc-vertical
">>
<<tabs "
[[hAuto01]]
[[hAuto09]]
[[hAuto13]]
[[hAuto10]]
[[hAuto11]]
[[hAuto12]]
[[hAuto08]]
" "
[[hAuto01]]
" "" "
tc-vertical
">>
!!! Fregat
Na de Tweede Wereldoorlog werd een aantal kanonneerboten, dat de oorlog overleefd had, geclassificeerd als fregat.<br>
Een fregat is iets kleiner dan een torpedobootjager.<br>
Een fregat kan meerdere oorlogstaken (bestrijden van zee-, lucht- en onderwaterdoelen) tegelijk uitvoeren i.t.t. een korvet.
<<w>>
[[dutchfleet 2014|https://www.dutchfleet.nl/showthread.php/15616-Classificatie-Kruiser-Fregat-Destroyer-etc?highlight=typeaanduiding]]
|Fregat |Omschrijving |Klasse |h
|GW-fregat |Geleidewapen-fregat |Tromp klasse|
|S-fregat |Standaard-fregat |Kortenear klasse|
|L-fregat |Luchtverdedigings-fregat |Jacob van Heemskerck klasse|
|M-fregat |Multipurpose-fregat |Kareldoorman/Van Amstel klasse|
|LC-fregat of LCF |Luchtverdedigings & Commando-fregat |Zeven provincien klasse|
<$tiddler tiddler=<<currentTab>>>
{{||$:/_pennantnummer_template}}
</$tiddler>
<!--
1) Hernoem tiddler tot 'Schepen' (b.v. Fregatten)
2) Vervang in veld 'filter' de 'C' (voor kruisers) door het bijbehorende voorvoegsel toe (voor fregatten 'F')
<<penlinks filter char>>
vereist in TW5.1.17 $:/core/modules/filters/regexps.js
-->
{{||$:/_ship_template}}
* <<slider "Torpedoboten Wolf en Fret 1911" Schepen252>>
{{||$:/_ship_template}}
* <<slider "Fregat Fret bij de overdracht in 1954" Schepen224>>
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Freyr 1938" Schepen384>>
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Freyr ca. 1970" Schepen222>>
In 1986 in bruikleen gegeven aan het Zeekadetkorps Nederland, dat het schip per 1 maart 1987 toewees aan het Zeekadetkorps Gouda. Heden ten dage is het een varend trainingsschip en doet tevens dienst als korpsschip.
{{||$:/_plane_template}}
* <<slider "Friedrichshafen FF.19 1914" Vliegtuig171>>
* <<slider "Friedrichshafen FF.19 1914" Vliegtuig210>>
Op 14 augustus 1914 maakte een Duitse Friedrichshafen FF.19 (28) een noodlanding bij Schiermonnikoog en werd daar geïnterneerd. Het was het eerste (geïnterneerde) toestel voor de MLD.<br>
Op 1 september werd het gekocht voor 2.000 gulden. Daarna gerepareerd en in gebruik genomen als R1. Medio november 1919 werd het buiten dienst gesteld.
{{||$:/_plane_template}}
* <<slider "Friedrichshafen FF.29 1915" Vliegtuig172>>
* <<slider "Friedrichshafen FF.29 1915" Vliegtuig212>>
Op 21 november 1915 werd een Duitse Friedrichshafen FF.29 (205) geïnterneerd bij Schiermonnikoog en in dienst genomen als S1. Het was een onbewapend, verkennings-trainingsvliegtuig.
{{||$:/_plane_template}}
* <<slider "Friedrichshafen FF.33L 1918" Vliegtuig173>>
* <<slider "Friedrichshafen FF.33L ca. 1919" Vliegtuig211>>
Op 6-8-1917 maakte een Friedrichshafen FF-33J (voorzien van radiozender/ontvanger) een noodlanding bij Ameland. Het toestel werd geïnterneerd en in dients genomen met registratie V1.<br>
Op 7-8-1917 maakte een Friedrichshafen FF-33S (trainer versie) een noodlanding bij Texel. Het toestel werd geïnterneerd en in dienst genomen met registratie V2.<br>
Op 24-9-1917 maakte een Friedrichshafen FF-33L (en een [[Gotha WD-11]] een noodlanding bij Wielingen (Cadzand - Zeeuws Vlaanderen). Het toestel werd door een torpedoboot van de marine naar Veere gesleept, waar het werd gerepareerd en geïnterneerd met de registratie V3.<br>
De FF-33L beviel uitstekend, zodat (na de oorlog) medio oktober 1918 een order werd geplaatst voor de levering van 18 toestellen van dit type. Ze werden afgeleverd tussen 14 april en augustus 1919.
{{||$:/_plane_template}}
* <<slider "Friedrichshafen FF.49C 1918" Vliegtuig187>>
* <<slider "Friedrichshafen FF.49C 1919" Vliegtuig213>>
Op 3-5-1918 maakten 2 Friedrichshafen FF-49C's (1682 & 1705) een noodlanding bij Wielingen (Cadzand - Zeeuws Vlaanderen). Ze werden geïnterneerd met registratie V4 en V5.<br>
Op 13-5-1918 maakte een Friedrichshafen FF-49C (1758) een noodlanding op de Noordzee. Deze werd geïnterneerd met registratie V6.
!! Friedrichshafen
||| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[FF.33L|Friedrichshafen FF.33L]]|{{Friedrichshafen FF.33L!!soort}}| 4| V3, V15 - V32 | {{Friedrichshafen FF.33L!!per}}|
|[[FF-33J|Friedrichshafen FF.33L]]|{{Friedrichshafen FF.33L!!soort}}+radiozender/ontvanger| 1| V1 | 1917-1925|
|[[FF-33S|Friedrichshafen FF.33L]]|trainer| 1| V2 | 1917-1919|
|[[FF.19|Friedrichshafen FF.19]]|{{Friedrichshafen FF.19!!soort}}| 1| R1 | {{Friedrichshafen FF.19!!per}}|
|[[FF.29|Friedrichshafen FF.29]]|{{Friedrichshafen FF.29!!soort}}| 1| S1 | {{Friedrichshafen FF.29!!per}}|
|[[FF.49C|Friedrichshafen FF.49C]]|{{Friedrichshafen FF.49C!!soort}}| 3| V4 - V6 | {{Friedrichshafen FF.49C!!per}}|
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Friesland 1956" Schepen191>>
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Friesland 2012" Schepen272>>
Deze torpedobootjagers werden hier <<popup onderzeebootjagers Onderzeebootjager>> of B-jagers genoemd.<br>
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Friso ca. 1928" Schepen131>>
{{||$:/_ship_template}}
* <<slider "Korvet 'Carnation', later Friso, ca. 1942" Schepen172>>
Ex-Britse Carnation, aan Nederlandse marine in bruikleen gegeven in ruil voor de Nederlandse mijnenveger [[Jan van Gelder (1937)]]. Het schip werd in 1944 teruggegeven aan de Britse marine.
{{||$:/_ship_template}}
* <<slider "Torpedoboot G10 1909" Schepen138>>
{{||$:/_ship_template}}
* <<slider "Torpedoboot G13 1914" Schepen251>>
{{||$:/_ship_template}}
* <<slider "Vliegdekschip Gadila 1945" Schepen167>>
//Bron: Wikipedia,// https://nl.wikipedia.org/wiki/Gaston_Plant%C3%A9
<<popup "Gaston Planté" "GastonPlanté">> (Orthez, 22 april 1834 - Parijs, 21 mei 1889) was een Frans natuurkundige en uitvinder van de loodaccu in 1859. De loodaccu was de eerste oplaadbare elektrische batterij die op grote schaal commercieel gebruikt werd.
!!!Levensloop
In 1855 ontdekte hij de eerste fossielen van de prehistorische loopvogel Gastornis parisiensis (naar hem vernoemd) vlakbij Parijs. Planté was op dat moment, aan het begin van zijn academische carrière, slechts de onderwijs assistent van A.E. Becquerel (vader van nobelprijswinnaar Henri Becquerel) aan het 'Conservatoire national des arts et métiers' in Parijs.<br>
Via experimenten vond hij in 1865 de loodzwavelzuuraccu uit. Zijn eerste model bestond uit een opgerolde rol van twee platen zuiver lood gescheiden door een linnen kleed; het geheel was ondergedompeld in een pot met verdund zwavelzuur. Door deze herhaald op te laden en te ontladen verkreeg hij een bepaalde capaciteit, doordat op de kathode lood(IV)oxide ontstond.<br>
Het jaar daarop presenteerde hij zijn loodaccu - met negen in serie geschakelde cellen - aan het 'Académie des Sciences' en promoveert hij in 1860 tot de post van natuurkundig professor aan het 'Association Polytechnique pour le Développement de l'Instruction Populair'. Een amfitheater van dat instituut is naar hem vernoemd.
<<slider "Eerste en later model van zijn accu" "Accu Gaston Planté">>
In 1881 zou de Fransman <<popup "Camille Alphonse Faure" "Camille Alphonse Faure">> een efficiënter en betrouwbaarder model ontwikkelen die op grote schaal gebruikt zou worden om auto's te starten.<br>
Gaston Planté overleed op 54-jarige leeftijd in Belleveu, nabij Parijs. In 1889 werd door de Bulgaarse wetenschapsacademie de Gaston Planté Medaille ingesteld, die wordt toegekend aan wetenschappers die belangrijke bijdragen hebben geleverd in de ontwikkeling van loodaccu technologie.
!!!Rheostatische machine
Planté onderzocht - met behulp van batterijen - ook het verschil tussen statische elektriciteit en dynamische elektriciteit. Ten behoeve van dit onderzoek vond hij een mechanisch apparaat uit die hij de Rheostatische Machine noemde.
Deze rheostatische machine bestaat uit een aantal mica condensatorbanken en een roterende commutator, met contacten die de condensatorbanken afwisselend parallel schakelde en ze daarna in serie zet. Als de condensatoren parallel staan worden ze opgeladen uit een externe spanningsbron, bijvoorbeeld een batterij of loodaccu. Door ze daarna in serie te ontladen wordt de batterijspanning vermenigvuldigd met het aantal condensatorbanken en wordt er een zeer hoge spanning geproduceerd.
Door de commutator zeer snel rond te draaien konden vonken van enkele centimeters groot opgewekt worden. Deze machine was de mechanische voorganger van de moderne Marx-generator. Met zijn machine ontdekt Planté de elektrische doorslag van lucht, het ontstaan van Lichtenberg figuren en het gedrag van dunne draden bij hoge pulserende elektrische stromen.
[img[Gaston Planté|Images/GastonPlante.gif]]<br>
//Gaston Planté//
Werd in 1940 in dienst gesteld als Hulpmijnenveger 14 (HMV14) en gebruikt als boeienschip. Op 2 maart 1942 door de eigen bemanning tot zinken gebracht in Soerabaja. Op 15 oktober werd het schip op last van de Japanse bezetter gelicht en gerepareerd waarna het als hulponderzeebootjager 104 in Japanse dienst gesteld werd. Na WWII werd het vaartuig teruggevonden in Tandjong Priok, maar het verdere lot is onbekend.
! Registratiegegevens
|Dornier Do 24K |<|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Fabrikant |Opmerkingen|h
|X-1| 3-7-1937 | 3-3-1942 |DF^^1^^|Verloren gegaan bij Broome|
|X-2| 1-1-1938 | 24-4-1941 |DF|Verongelukt bij MVK-M|
|X-3| 1-1-1938 | 3-3-1942 |DF/DA^^2^^|Verloren gegaan bij Broome|
|X-4| 14-3-1938 | 13-11-1941 |DA|Verongelukt bij MVK-M|
|X-5| 18-3-1938 | 29-4-1942 |DA|Overgedragen aan RAAF (A49-1), 20-12-1944 uit dienst|
|X-6| 1-3-1938 | 3-2-1942 |DA|Vernield bij bombardement MVK-M|
|X-7| 4-5-1938 | 29-4-1942 |DA|Overgedragen aan RAAF (A49-2), 20-12-1944 uit dienst|
|X-8| 1-5-1938 | 29-4-1942 |DA|Overgedragen aan RAAF (A49-3), 20-12-1944 uit dienst|
|X-9| 1-5-1938 | 29-4-1942 |DA|Overgedragen aan RAAF (A49-4), 20-12-1944 uit dienst|
|X-10| 14-7-1938 | 29-4-1942 |DA|Overgedragen aan RAAF (A49-5), 11-03-1944 verloren gegaan.|
|X-11| 19-7-1938 | 26-12-1941 |DA|Vernield op Tondano Meer|
|X-12| 8-9-1938 | 26-12-1941 |DA|Vernield op Tondano Meer|
|X-13| 1-9-1938 | 7-2-1942 |DA|Verloren gegaan bij Roti|
|X-14| 1-1-1938 | 22-1-1942 |DA|Medio 1938 in dienst. Verongelukt in Baai van Balikpapan|
|X-15| 1-1-1938 | 29-12-1941 |DA|Medio 1938 in dienst. Verloren gegaan Zuid Chinese Zee|
|X-16| 1-1-1938 | 1-3-1942 |DA|Medio 1938 in dienst. Vernield bij bomb. MVKP|
|X-17| 1-12-1938 | 25-2-1942 |DA|Medio 1938 in dienst. Neergeschoten bij Noord-wachter|
|X-18| 16-1-1939 | 24-2-1942 |DA|Neergeschoten bij Noord-wachter|
|X-19| 31-1-1939 | 25-1-1942 |DA|Verongelukt bij Menari|
|X-20| 14-2-1939 | 3-3-1942 |DA|Verloren gegaan bij Broome|
|X-21| 3-3-1939 | 24-1-1942 |DA|Verongelukt bij Bali|
|X-22| 20-3-1939 | 8-1-1942 |DA|Afgeschreven MVK-M|
|X-23| 21-4-1939 | 3-3-1942 |DA|Verloren gegaan bij Broome|
|X-24| 5-5-1939 | 1-10-1943 |DA|In okt 1943 Overgedragen aan RAAF (A49-6), 20-12-44 uit dienst|
|X-25| 24-5-1939 | 26-12-1941 |DA|Vernield op Tondano Meer|
|X-26| 7-6-1939 | 26-12-1941 |DA|Vernield op Tondano Meer|
|X-27| 18-7-1939 | 23-12-1941 |DA|Noodlanding bij Taroena|
|X-28| 23-8-1939 | 3-3-1942 |DA|Verloren gegaan bij Broome|
|X-29| 25-9-1939 | 11-2-1942 |DA|Noodlanding bij MVK-M|
|X-30| 7-7-1939 | 3-2-1942 |ADS^^3^^|Vernield bij bombardement MVK-M|
|X-31| 29-8-1939 | 5-2-1942 |ADS|Vernield bij bombardement MVK-M|
|X-32| 28-9-1939 | 7-2-1942 |ADS|Gezonken bij Roti|
|X-33| 20-11-1939 | 5-2-1942 |ADS|Vernield bij bombardement MVK-M|
|X-34| 11-12-1939 | 17-12-1941 |ADS|Noodlanding Noord Borneo|
|X-35| 6-3-1940 | 8-2-1942 |ADS|Verbrand bij Koepang (Roti)|
|X-36| 8-3-1940 | 3-3-1942 |ADS|Vernield ten Zuiden van Broome|
|Dornier Do 24K-2 |<|<|<|<|h
|X-37| 6-12-1939 | 3-2-1942 |DA|Vernield bij bombardement MVK-M ?|
Besteld, maar niet aan de MLD afgeleverd zijn de: X-38 t/m X-48 op 10/02/38, te bouwen door Aviolanda/De Schelde X-49 t/m -61 op 07/06/39.................
|borderless|k
|^^1^^ |DF |Dornier Friedrichshaven|
|^^2^^ |DA |Dornier Altenrhein|
|^^3^^ |ADS |Aviolanda / De Schelde|
|^^4^^ |MVK-M |Marine Vliekamp Morokrembangan|
! Registratiegegevens
|Dornier Do-15 Wal / Do J Wal|<|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Fabrikant |Opmerkingen |h
|D-1| 1-5-1926 | 1-5-1939 |CMA^^1^^|afgeschreven MVK-M^^4^^|
|D-2| 1-5-1926 | 1-1-1935 |CMA||
|D-3| 1-7-1926 | 1-5-1939 |CMA||
|D-4| 1-7-1926 | 1-5-1939 |CMA||
|D-5| 1-8-1926 | 1-5-1939 |CMA||
|D-6| 4-11-1927 | 24-8-1928 |CMA/Avio^^2^^||
|D-7| 13-1-1928 | 1-5-1939 |CMA/Avio||
|D-8| 2-2-1928 | 1-1-1935 |CMA/Avio||
|D-9| 15-6-1928 | 1-4-1939 |CMA/Avio||
|D-10| 28-3-1928 | 27-12-1937 |Avio^^3^^|Verongelukt bij Ambon|
|D-11| 5-5-1928 | 1-3-1940 |Avio|afgeschreven MVK-M^^4^^|
|D-12| 16-5-1928 | 1-1-1939 |Avio|afgeschreven MVK-M|
|D-13| 15-6-1928 | 1-2-1939 |Avio|afgeschreven MVK-M|
|D-14| 20-8-1928 | 1-3-1940 |Avio|afgeschreven MVK-M|
|D-15| 26-7-1928 | 1-9-1939 |Avio|afgeschreven MVK-M|
|D-16| 20-8-1928 | 1-3-1940 |Avio|afgeschreven MVK-M|
|D-17| 10-9-1928 | 1-7-1939 |Avio|afgeschreven MVK-M|
|D-18| 8-10-1928 | 1-1-1939 |Avio|afgeschreven MVK-M|
|D-19| 13-11-1928 | 1-11-1939 |Avio|afgeschreven MVK-M|
|D-20| 7-12-1928 | 1-1-1940 |Avio|Medio 1940 afgeschreven MVK-M|
|D-21| 21-3-1929 | 1-8-1939 |Avio|afgeschreven MVK-M|
|D-22| 21-3-1929 | 2-5-1929 |Avio|Verongelukt bij Basrah|
|D-23| 21-3-1929 | 20-5-1929 |Avio|Verbrand op Marine Vliegkamp P....|
|D-24| 4-6-1929 | 1-1-1939 |Avio|afgeschreven MVK-M|
|D-25| 4-6-1929 | 1-3-1940 |Avio|afgeschreven MVK-M|
|D-26| 5-7-1929 | 14-4-1932 |Avio|Verongelukt bij Soerabaja.|
|D-27| 13-8-1929 | 1-1-1940 |Avio|Medio 1940 afgeschreven MVK-M|
|D-28| 13-8-1929 | 1-3-1940 |Avio|afgeschreven MVK-M|
|D-29| 1-10-1929 | 1-1-1939 |Avio|afgeschreven MVK-M|
|D-30| 25-10-1929 | 1-1-1940 |Avio|Medio 1940 afgeschreven MVK-M|
|D-31| 7-11-1929 | 1-3-1940 |Avio|afgeschreven MVK-M|
|D-32| 19-12-1929 | 1-7-1939 |Avio|afgeschreven MVK-M|
|D-33| 25-3-1930 | 1-3-1939 |Avio|afgeschreven MVK-M|
|D-34| 20-5-1930 | 1-1-1940 |Avio|Medio 1940 afgeschreven MVK-M|
|D-35| 13-1-1931 | 1-1-1939 |Avio|afgeschreven MVK-M|
|D-36| 1-10-1930 | 14-8-1939 |Avio|Verongelukt bij Mapia|
|D-37| 14-11-1930 | 1-1-1940 |Avio|Medio 1940 afgeschreven MVK-M|
|D-38| 16-2-1931 | 1-1-1940 |Avio|Medio 1940 afgeschreven MVK-M|
|D-39| 22-7-1931 | 1-1-1939 |Avio|afgeschreven MVK-M|
|D-40| 26-7-1931 | 1-1-1939 |Avio|afgeschreven MVK-M|
|Dornier Do-15 Wal F / Do J IIf Wal ^^5^^|<|<|<|<|h
|D-41| 25-8-1931 | 3-2-1942 |Avio|afgeschreven MVK-M|
|D-42| 5-7-1932 | 1-1-1940 |Avio|Medio 1940 afgeschreven MVK-M|
|D-43| 5-7-1932 | 3-2-1942 |Avio|Neergeschoten bij Soerabaja|
|D-44| 15-9-1932 | 3-3-1942 |Avio|Vernietigd bij evacuatie MVK-M|
|D-45| 1-10-1932 | 5-2-1942 |Avio|Uit dienst na bombardement|
|D-46| 2-11-1932 | 5-2-1942 |Avio|Vernield bij bombardement Marine Vliegkamp|
|#|Afkorting |Omschrijving |h
|^^^1^^|^CMA |S.A.I. Costruzione Mechaniche Aeronautiche, Marina di Pisa, Italië<br>met Rolls Royce Eagle-motoren|
|^^^2^^|^CMA/Avio |Gebouwd door CMA en geassembleerd door Aviolanda<br>met Rolls Royce Eagle-motoren|
|^^^3^^|^Avio |Aviolanda, Papendrecht, Nederland<br>met Lorraine Dietrich-motoren|
|^^^4^^|MVK-M |Marine Vliekamp Morokrembangan|
|^^^5^^|^Do J IIf Wal|verbeterde versie van de Wal, o.a. met kiel en vergrote spanwijdte (27 m)<br>met Lorraine Dietrich-motoren|
[[Marineschepen 1945 - heden|https://www.flickr.com/photos/58138998@N02/14784809959/sizes/o/]]
|Klasse |Boegnr |Naam |Type |Periode |h
|Karel Doorman (I)|QH1|[[Karel Doorman (1946)]]|Vliegkampschip|''1946''-1948|
||||||
|O9-klasse|O9|[[O9 (1926)]]|Onderzeeboot|''1926''-1944|
|O9-klasse|O10|[[O10 (1926)]]|Onderzeeboot|''1926''-1944|
||||||
|O12-klasse|O15|[[O15 (1932)]]|Onderzeeboot|''1932''-1945|
||||||
|O19-klasse|O19|[[O19 (1939)]]|Onderzeeboot|''1939''-1945|
||||||
|KXIV-klasse|KXIV|[[KXIV (1933)]]|Onderzeeboot|''1933''-1946|
|KXIV-klasse|KXV|[[KXV (1933)]]|Onderzeeboot|''1933''-1946|
||||||
|U-klasse||[[Dolfijn (1942)]]|Onderzeeboot|''1942''-1946|
||||||
|S-klasse||[[Zeehond (1943)]]|Onderzeeboot|''1943''-1945|
||||||
|Tromp||[[Tromp (1938)]]|Kruiser|''1938''-1948|
|Tromp||[[Jacob van Heemskerck (1940)]]|Kruiser|''1940''-1955|
||||||
|Type MMS126||[[Duiveland (1944)]]|Mijnenveger|''1944''-1952|
|Type MMS126||[[Overflakkee (1944)]]|Mijnenveger|''1944''-1954|
|Type MMS126||[[Schokland (1944)]]|Mijnenveger|''1944''-1949|
|Type MMS126||[[Tholen (1943)]]|Mijnenveger|''1943''-1952|
|Type MMS126||[[Voorne (1943)]]|Mijnenveger|''1943''-1952|
|Type MMS126||[[Walcheren (1943)]]|Mijnenveger|''1943''-1946|
|Type MMS126||[[Wieringen (1943)]]|Mijnenveger|''1943''-1949|
|Type MMS126||[[IJsselmonde (1943)]]|Mijnenveger|''1943''-1952|
||||||
|Van Amstel|F806|[[Van Amstel (1950)]]|Fregat|''1950''-1967|
|Van Amstel|F807|[[De Bitter (1950)]]|Fregat|''1950''-1967|
|Van Amstel|F808|[[Van Ewijck (1950)]]|Fregat|''1950''-1967|
|Van Amstel|F809|[[Dubois (1950)]]|Fregat|''1950''-1967|
|Van Amstel|F810|[[De Zeeuw (1951)]]|Fregat|''1951''-1967|
|Van Amstel|F811|[[Van Zijll (1951)]]|Fregat|''1951''-1967|
||||||
|Q-klasse|D801|[[Banckert (1945)]]|Torpedobootjager|''1945''-1952|
||||||
|G-klasse|F801|[[Marnix (1947)]]|Mijnenlegger/fregat|''1947''-1964|
||||||
|N-klasse|D803|[[Van Galen (1942)]]|Torpedobootjager|''1942''-1956|
|N-klasse|D806|[[Tjerk Hiddes (1942)]]|Torpedobootjager|''1942''-1951|
||||||
|Flores||[[Flores (1926)]]|Fregat/artillerietender|''1926''-1955|
|Flores||[[Soemba (1926)]]|Radarinstr./vlgtdir. schip|''1926''-1955|
||||||
|Johan Maurits van Nassau|F802|[[Johan Maurits van Nassau (1943)]]|Fregat|''1943''-1953|
||||||
|Batjan|F814|[[Boeroe (1946)]]|Mijnenveger/fregat|''1946''-1958|
|Batjan|F815|[[Ceram (1946)]]|Mijnenveger/fregat|''1946''-1958|
|Batjan|F812|[[Ternate (1946)]]|Mijnenveger/fregat|''1946''-1958|
|Batjan||[[Ambon (1946)]]|Mijnenveger|''1946''-1950|
|Batjan||[[Banda (1946)]]|Mijnenveger|''1946''-1950|
|Batjan|F813|[[Batjan (1946)]]|Mijnenveger/fregat|''1946''-1958|
|Batjan||[[Morotai (1946)]]|Mijnenveger|''1946''-1949|
|Batjan||[[Tidore (1946)]]|Mijnenveger|''1946''-1949|
||||||
|O21-klasse|O21|[[O21 (1940)]]|Onderzeeboot|''1940''-1957|
|O21-klasse|O23|[[O23 (1940)]]|Onderzeeboot|''1940''-1948|
|O21-klasse|O24|[[O24 (1940)]]|Onderzeeboot|''1940''-1957|
|O21-klasse|O27|[[O27 (1945)]]|Onderzeeboot|''1945''-1959|
||||||
|Borndiep||[[Borndiep (1946)]]|Mijnenveger|''1946''-1962|
|Borndiep||[[Deurloo (1946)]]|Mijnenveger|''1946''-1962|
|Borndiep||[[Hollandsch Diep (1946)]]|Mijnenveger|''1946''-1957|
|Borndiep||[[Marsdiep (1947)]]|Mijnenveger|''1947''-1956|
|Borndiep||[[Oosterschelde (1947)]]|Mijnenveger|''1947''-1957|
|Borndiep||[[Texelstroom (1947)]]|Mijnenveger|''1947''-1957|
|Borndiep||[[Vliestroom (1947)]]|Mijnenveger|''1947''-1962|
|Borndiep||[[Volkerak (1946)]]|Mijnenveger|''1946''-1957|
|Borndiep||[[Westerschelde (1946)]]|Mijnenveger|''1946''-1957|
|Borndiep||[[Zuiderdiep (1947)]]|Mijnenveger|''1947''-1962|
||||||
|Type MMS105/Mickey||[[Ameland (1942)]]|Mijnenveger|''1942''-1957|
|Type MMS105/Mickey||[[Beveland (1943)]]|Mijnenveger|''1943''-1956|
|Type MMS105/Mickey||[[Marken (1944)]]|Mijnenveger|''1944''-1957|
|Type MMS105/Mickey||[[Putten (1943)]]|Mijnenveger|''1943''-1957|
|Type MMS105/Mickey||[[Rozenburg (1943)]]|Mijnenveger|''1943''-1957|
|Type MMS105/Mickey||[[Terschelling (1943)]]|Mijnenveger|''1943''-1957|
|Type MMS105/Mickey||[[Texel (1942)]]|Mijnenveger|''1942''-1957|
|Type MMS105/Mickey||[[Vlieland (1942)]]|Mijnenveger|''1942''-1951|
||||||
|Raum-boten|M878|[[Walcheren (1947)]]|Mijnenveger|''1947''-1956|
|Raum-boten|M869|[[Goeree (1947)]]|Mijnenveger|''1947''-1956|
|Raum-boten|M873|[[Schouwen (1947)]]|Mijnenveger|''1947''-1956|
|Raum-boten|M872|[[Schiermonnikoog (1947)]]|Mijnenveger|''1947''-1956|
|Raum-boten|M876|[[Urk (1947)]]|Mijnenveger|''1947''-1956|
|Raum-boten|M875|[[Stortemelk (1947)]]|Mijnenveger|''1947''-1956|
|Raum-boten|M874|[[Schulpengat (1947)]]|Mijnenveger|''1947''-1956|
|Raum-boten|M870|[[Malzwin (1947)]]|Mijnenveger|''1947''-1956|
|Raum-boten|M877|[[Vlieter (1947)]]|Mijnenveger|''1947''-1956|
|Raum-boten|M871|[[Roompot (1947)]]|Mijnenveger|''1947''-1956|
||||||
|Hydrograaf||[[Hydrograaf (1910)]]|HOV|''1910''-1962|
||||||
|Zwaardvisch (I)|S814|[[Zwaardvisch (1943)]]|Onderzeeboot|''1943''-1962|
|Zwaardvisch (I)|S812|[[Tijgerhaai (1945)]]|Onderzeeboot|''1945''-1965|
|Zwaardvisch (I)|S811|[[Dolfijn (1948)]]|Onderzeeboot|''1948''-1953|
|Zwaardvisch (I)|S813|[[Zeehond (1944)]]|Onderzeeboot|''1948''-1953|
||||||
|Evertsen|D802/F803|[[Evertsen (1946)]]|Torpedobootjager/fregat|''1946''-1962|
|Evertsen|D804/F812|[[Kortenaer (1945)]]|Torpedobootjager/fregat|''1945''-1962|
|Evertsen|D805/F804|[[Piet Hein (1945)]]|Torpedobootjager/fregat|''1945''-1961|
||||||
|Jan van Amstel|C|[[Abraham Crijnssen (1937)]]|Mijnenveger|''1937''-1961|
|Jan van Amstel|F|[[Pieter Florisz (1937)]]|Mijnenveger|''1937''-1940/1946-1961|
|Jan van Amstel|J60|[[Jan van Gelder (1937)]]|Mijnenveger|''1937''-1962|
|Jan van Amstel|H|[[Abraham van der Hulst (1946)]]|Mijnenveger|''1946''-1961|
||||||
|Karel Doorman (II)|R81|[[Karel Doorman (1948)]]|Vliegkampschip|''1948''-1968|
||||||
|K-klasse|N05/F805|[[Van Speijk (1946)]]|Kanonneerboot|''1946''-1960|
||||||
|Jan van Brakel||[[Jan van Brakel (1936)]]|Ondersteuningsvaartuig|''1936''-1957|
||||||
|Willem van der Zaan|F824|[[Willem van der Zaan (1939)]]|Mijnenlegger/fregat|''1939''-1970|
||||||
|Pelikaan|A830|[[Pelikaan (1948)]]|Ondersteuningsschip|''1948''-1973|
||||||
|Zeefakkel|A903|[[Zeefakkel (1951)]]|HOV|''1951''-1972|
||||||
|Luymes|A902|[[Luymes (1952)]]|HOV|''1952''-1971|
|Luymes|A907|[[Snellius (1952)]]|HOV|''1952''-1972|
||||||
|Beemster|M845|[[Beemster (1953)]]|Mijnenveger|''1953''-1974|
|Beemster|M846|[[Bolsward (1953)]]|Mijnenveger|''1953''-1972|
|Beemster|M847|[[Bedum (1953)]]|Mijnenveger|''1953''-1975|
|Beemster|M848|[[Beilen (1954)]]|Mijnenveger|''1954''-1974|
|Beemster|M849|[[Borculo (1953)]]|Mijnenveger|''1953''-1971|
|Beemster|M850|[[Borne (1953)]]|Mijnenveger|''1953''-1974|
|Beemster|M851|[[Brummen (1954)]]|Mijnenveger|''1954''-1973|
|Beemster|M852|[[Breukelen (1954)]]|Mijnenveger|''1954''-1971|
|Beemster|M853|[[Blaricum (1954)]]|Mijnenveger|''1954''-1972|
|Beemster|M854|[[Brielle (1954)]]|Mijnenveger|''1954''-1975|
|Beemster|M855|[[Breskens (1954)]]|Mijnenveger|''1954''-1976|
|Beemster|M856|[[Bruinisse (1954)]]|Mijnenveger|''1954''-1972|
|Beemster|M857|[[Boxtel (1954)]]|Mijnenveger|''1954''-1976|
|Beemster|M858|[[Brouwershaven (1954)]]|Mijnenveger|''1954''-1973|
||||||
|De Zeven Provinciën|C801|[[De Ruyter (1953)]]|Kruiser|''1953''-1973|
|De Zeven Provinciën|C802|[[De Zeven Provinciën (1953)]]|Kruiser|''1953''-1973|
||||||
|Onversaagd|M884/A854|[[Onversaagd (1955)]]|Escortevaartuig|''1955''-1976|
|Onversaagd|M866/A856|[[Onverschrokken (1954)]]|Escortevaartuig|''1954''-1987|
|Onversaagd|M887/A857|[[Onvermoeid (1954)]]|Escortevaartuig|''1954''-1972|
|Onversaagd|M885/A855|[[Onbevreesd (1955)]]|Escortevaartuig|''1955''-1982|
|Onversaagd|M889/A859|[[Onverdroten (1955)]]|Escortevaartuig|''1955''-1982|
|Onversaagd|M888/A858|[[Onvervaard (1955)]]|Escortevaartuig|''1955''-1982|
||||||
|Roofdier|F817|[[Wolf (1954)]]|Fregat|''1954''-1985|
|Roofdier|F818|[[Fret (1954)]]|Fregat|''1954''-1988|
|Roofdier|F819|[[Hermelijn (1954)]]|Fregat|''1954''-1987|
|Roofdier|F820|[[Vos (1954)]]|Fregat|''1954''-1988|
|Roofdier|F821|[[Panter (1954)]]|Fregat|''1954''-1987|
|Roofdier|F822|[[Jaguar (1954)]]|Fregat|''1954''-1988|
||||||
|Walrus (I)/Guppy|S802|[[Walrus (1953)]]|Onderzeeboot|''1953''-1971|
|Walrus (I)/Guppy|S803|[[Zeeleeuw (1953)]]|Onderzeeboot|''1953''-1970|
||||||
|Holland/A-jagers|D808|[[Holland (1954)]]|Torpedobootjager|''1954''-1978|
|Holland/A-jagers|D809|[[Zeeland (1955)]]|Torpedobootjager|''1955''-1978|
|Holland/A-jagers|D810|[[Noord Brabant (1955)]]|Torpedobootjager|''1955''-1974|
|Holland/A-jagers|D811|[[Gelderland (1955)]]|Torpedobootjager|''1955''-1973|
||||||
|Lynx|F823|[[Lynx (1956)]]|Fregat|''1956''-1961|
||||||
|Balder|P802|[[Balder (1954)]]|Patrouillevaartuig|''1954''-1985|
|Balder|P803|[[Bulgia (1954)]]|Patrouillevaartuig|''1954''-1986|
|Balder|P804|[[Freyr (1954)]]|Patrouillevaartuig|''1954''-1986|
|Balder|P805|[[Hadda (1955)]]|Patrouillevaartuig|''1955''-1986|
|Balder|P806|[[Hefring (1955)]]|Patrouillevaartuig|''1955''-1985|
||||||
|Wildervank|M803|[[Wildervank (1955)]]|Mijnenveger|''1955''-1973|
|Wildervank|M804|[[Steenwijk (1956)]]|Mijnenveger|''1956''-1969|
|Wildervank|M805|[[Gieten (1956)]]|Mijnenveger|''1956''-1969|
|Wildervank|M807|[[Waalwijk (1956)]]|Mijnenveger|''1956''-1968|
|Wildervank|M808|[[Axel (1956)]]|Mijnenveger|''1956''-1973|
|Wildervank|M811|[[Aalsmeer (1956)]]|Mijnenveger|''1956''-1973|
|Wildervank|M814|[[Meppel (1956)]]|Mijnenveger|''1956''-1973|
|Wildervank|M816|[[Lochem (1956)]]|Mijnenveger|''1956''-1969|
|Wildervank|M819|[[Goes (1956)]]|Mijnenveger|''1956''-1973|
|Wildervank|M822|[[Leersum (1956)]]|Mijnenveger|''1956''-1962|
|Wildervank|M824|[[Sneek (1957)]]|Mijnenveger|''1957''-1969|
|Wildervank|M826|[[Grijpskerk (1956)]]|Mijnenveger|''1956''-1973|
|Wildervank|M829|[[Elst (1956)]]|Mijnenveger|''1956''-1970|
|Wildervank|M843|[[Lisse (1957)]]|Mijnenveger|''1957''-1962|
||||||
|Friesland/B-jagers|D812|[[Friesland (1956)]]|Torpedobootjager|''1956''-1979|
|Friesland/B-jagers|D813|[[Groningen (1956)]]|Torpedobootjager|''1956''-1981|
|Friesland/B-jagers|D814|[[Limburg (1956)]]|Torpedobootjager|''1956''-1980|
|Friesland/B-jagers|D815|[[Overijssel (1957)]]|Torpedobootjager|''1957''-1982|
|Friesland/B-jagers|D816|[[Drenthe (1957)]]|Torpedobootjager|''1957''-1981|
|Friesland/B-jagers|D817|[[Utrecht (1957)]]|Torpedobootjager|''1957''-1980|
|Friesland/B-jagers|D818|[[Rotterdam (1957)]]|Torpedobootjager|''1957''-1981|
|Friesland/B-jagers|D819|[[Amsterdam (1958)]]|Torpedobootjager|''1958''-1980|
||||||
|Dokkum|M801/Y8001|[[Dokkum (1955)]]|Mijnenveger/-jager/Onderst.|''1955''-1986|
|Dokkum|M802|[[Hoogezand (1955)]]|Mijnenveger|''1955''-1993|
|Dokkum|M806|[[Roermond (1955)]]|Mijnenveger/duikvaartuig|''1955''-1968|
|Dokkum|M809|[[Naaldwijk (1955)]]|Mijnenveger|''1955''-1994|
|Dokkum|M810|[[Abcoude (1956)]]|Mijnenveger|''1956''-1993|
|Dokkum|M812|[[Drachten (1956)]]|Mijnenveger|''1956''-1994|
|Dokkum|M813|[[Ommen (1956)]]|Mijnenveger|''1956''-1994|
|Dokkum|M815|[[Giethoorn (1956)]]|Mijnenveger|''1956''-1993|
|Dokkum|M817|[[Venlo (1956)]]|Mijnenveger|''1956''-1993|
|Dokkum|M818|[[Drunen (1956)]]|Mijnenveger|''1956''-1987|
|Dokkum|M820|[[Woerden (1957)]]|Mijnenveger/duikvaartuig|''1957''-1962|
|Dokkum|M823|[[Naarden (1956)]]|Mijnenveger|''1956''-1997|
|Dokkum|M827|[[Hoogeveen (1956)]]|Mijnenveger|''1956''-1994|
|Dokkum|M828|[[Staphorst (1957)]]|Mijnenveger/-jager|''1957''-1987|
|Dokkum|M830|[[Sittard (1956)]]|Mijnenveger|''1956''-1987 |
|Dokkum|M841|[[Gemert (1956)]]|Mijnenveger|''1956''-1993|
|Dokkum|M842|[[Veere (1956)]]|Mijnenveger|''1956''-1987|
|Dokkum|M844|[[Rhenen (1956)]]|Mijnenveger/duikvaartuig|''1956''-1964|
||||||
|Van Straelen|M868|[[Alblas (1960)]]|Mijnenveger|''1960''-1984|
|Van Straelen|M869|[[Bussemaker (1960)]]|Mijnenveger|''1960''-1984|
|Van Straelen|M870|[[Lacomblé (1960)]]|Mijnenveger|''1960''-1984|
|Van Straelen|M871|[[Van Hamel (1960)]]|Mijnenveger|''1960''-1984|
|Van Straelen|M872|[[Van Straelen (1960)]]|Mijnenveger|''1960''-1984|
|Van Straelen|M873|[[Van Moppes (1960)]]|Mijnenveger|''1960''-1985|
|Van Straelen|M874|[[Chömpff (1960)]]|Mijnenveger|''1960''-1984|
|Van Straelen|M875|[[Van Well Groeneveld (1961)]]|Mijnenveger|''1961''-1984|
|Van Straelen|M876|[[Schuiling (1961)]]|Mijnenveger|''1961''-1984|
|Van Straelen|M877|[[Van Versendaal (1962)]]|Mijnenveger|''1962''-1984|
|Van Straelen|M878|[[Van der Wel (1961)]]|Mijnenveger|''1961''-1984|
|Van Straelen|M879|[[Van 't Hoff (1961)]]|Mijnenveger|''1961''-1984|
|Van Straelen|M880|[[Mahu (1961)]]|Mijnenveger|''1961''-1984|
|Van Straelen|M881|[[Staverman (1962)]]|Mijnenveger|''1962''-1984|
|Van Straelen|M882|[[Houtepen (1962)]]|Mijnenveger|''1962''-1984|
|Van Straelen|M883|[[Zomer (1961)]]|Mijnenveger|''1961''-1984|
||||||
|Dolfijn|S808|[[Dolfijn (1960)]]|Onderzeeboot|''1960''-1985|
|Dolfijn|S809|[[Zeehond (1961)]]|Onderzeeboot|''1961''-1990|
||||||
|Poolster|A835|[[Poolster (1964)]]|Ondersteuningsschip|''1964''-1994|
||||||
|Van Speijk/MLM|F802|[[Van Speijk (1967)]]|Fregat|''1967''-1986|
|Van Speijk/MLM|F803|[[Van Galen (1967)]]|Fregat|''1967''-1987|
|Van Speijk/MLM|F804|[[Tjerk Hiddes (1967)]]|Fregat|''1967''-1986|
|Van Speijk/MLM|F805|[[Van Nes (1967)]]|Fregat|''1967''-1988|
|Van Speijk/MLM|F814|[[Isaac Sweers (1968)]]|Fregat|''1968''-1990|
|Van Speijk/MLM|F815|[[Evertsen (1967)]]|Fregat|''1967''-1989|
||||||
|Potvis|S804|[[Potvis (1965)]]|Onderzeeboot|''1965''-1994|
|Potvis|S805|[[Tonijn (1966)]]|Onderzeeboot|''1966''-1994|
||||||
|Mercuur|A856|[[Mercuur (1973)]]|Torpedowerkschip|''1973''-1987|
||||||
|Zwaardvis (II)|S806|[[Zwaardvis (1972)]]|Onderzeeboot|''1972''-1994|
|Zwaardvis (II)|S807|[[Tijgerhaai (1972)]]|Onderzeeboot|''1972''-1995|
||||||
|Buyskes|A904|[[Buyskes (1973)]]|HOV|''1973''-2003|
|Buyskes|A905|[[Blommendal (1973)]]|HOV|''1973''-1999|
||||||
|Tydeman|A906|[[Tydeman (1976)]]|OOV|''1976''-2004|
||||||
|Tromp/GW-fregat|F801|[[Tromp (1975)]]|Fregat|''1975''-1999|
|Tromp/GW-fregat|F806|[[De Ruyter (1976)]]|Fregat|''1976''-2001|
||||||
|Zuiderkruis|A832|[[Zuiderkruis (1975)]]|Ondersteuningsschip|''1975''-2012|
||||||
|Kortenaer/S-fregat|F807|[[Kortenaer (1978)]]|Fregat|''1978''-1997|
|Kortenaer/S-fregat|F808|[[Callenburgh (1979)]]|Fregat|''1979''-1994|
|Kortenaer/S-fregat|F809|[[Van Kinsbergen (1980)]]|Fregat|''1980''-1995|
|Kortenaer/S-fregat|F810|[[Banckert (1980)]]|Fregat|''1980''-1993|
|Kortenaer/S-fregat|F811|[[Piet Hein (1981)]]|Fregat|''1981''-1998|
|Kortenaer/S-fregat|F816|[[Abraham Crijnssen (1983)]]|Fregat|''1983''-1997|
|Kortenaer/S-fregat|F823|[[Philips van Almonde (1981)]]|Fregat|''1981''-2002|
|Kortenaer/S-fregat|F824|[[Bloys van Treslong (1982)]]|Fregat|''1982''-2004|
|Kortenaer/S-fregat|F825|[[Jan van Brakel (1983)]]|Fregat|''1983''-2001|
|Kortenaer/S-fregat|F826|[[Pieter Florisz (1983)]]|Fregat|''1983''-2001|
||||||
|Alkmaar|M850|[[Alkmaar (1983)]]|Mijnenjager|''1983''-2000|
|Alkmaar|M851|[[Delfzijl (1983)]]|Mijnenjager|''1983''-2000|
|Alkmaar|M852|[[Dordrecht (1983)]]|Mijnenjager|''1983''-2000|
|Alkmaar|M853|[[Haarlem (1984)]]|Mijnenjager|''1984''-2011|
|Alkmaar|M854|[[Harlingen (1984)]]|Mijnenjager|''1984''-2004|
|Alkmaar|M855|[[Scheveningen (1984)]]|Mijnenjager|''1984''-2002|
|Alkmaar|M856|[[Maassluis (1984)]]|Mijnenjager|''1984''-2011|
|Alkmaar|M857|[[Makkum (1985)]]|Mijnenjager|''1985''-|
|Alkmaar|M858|[[Middelburg (1986)]]|Mijnenjager|''1986''-2011|
|Alkmaar|M859|[[Hellevoetsluis (1987)]]|Mijnenjager|''1987''-2011|
|Alkmaar|M860|[[Schiedam (1986)]]|Mijnenjager|''1986''-|
|Alkmaar|M861|[[Urk (1986)]]|Mijnenjager|''1986''-|
|Alkmaar|M862|[[Zierikzee (1987)]]|Mijnenjager|''1987''-|
|Alkmaar|M863|[[Vlaardingen (1989)]]|Mijnenjager|''1989''-|
|Alkmaar|M864|[[Willemstad (1986)]]|Mijnenjager|''1986''-|
||||||
|Jacob van Heemskerck/L-fregat|F812|[[Jacob van Heemskerck (1986)]]|Fregat|''1986''-2005|
|Jacob van Heemskerck/L-fregat|F813|[[Witte de With (1986)]]|Fregat|''1986''-2006|
||||||
|Mercuur|A900|[[Mercuur (1987)]]|Torpedowerkschip|''1987''-|
||||||
|Pelikaan|A801|[[Pelikaan (1990)]]|Ondersteuningsvaartuig|''1990''-?|
||||||
|Walrus (II)|S802|[[Walrus (1992)]]|Onderzeeboot|''1992''-|
|Walrus (II)|S803|[[Zeeleeuw (1990)]]|Onderzeeboot|''1990''-|
|Walrus (II)|S808|[[Dolfijn (1993)]]|Onderzeeboot|''1993''-|
|Walrus (II)|S810|[[Bruinvis (1994)]]|Onderzeeboot|''1994''-|
||||||
|Karel Doorman/M-fregat|F827|[[Karel Doorman (1991)]]|Fregat|''1991''-2005|
|Karel Doorman/M-fregat|F828|[[Van Speijk (1995)]]|Fregat|''1995''-|
|Karel Doorman/M-fregat|F829|[[Willem van der Zaan (1991)]]|Fregat|''1991''-2006|
|Karel Doorman/M-fregat|F830|[[Tjerk Hiddes (1993)]]|Fregat|''1993''-2004|
|Karel Doorman/M-fregat|F831|[[Van Amstel (1993)]]|Fregat|''1993''-|
|Karel Doorman/M-fregat|F832|[[Abraham van der Hulst (1993)]]|Fregat|''1993''-2004|
|Karel Doorman/M-fregat|F833|[[Van Nes (1994)]]|Fregat|''1992''-1994|
|Karel Doorman/M-fregat|F834|[[Van Galen (1994)]]|Fregat|''1994''-2009|
||||||
|Rotterdam|L800|[[Rotterdam (1998)]]|LPD|''1998''-|
||||||
|Amsterdam|A836|[[Amsterdam (1995)]]|Ondersteuningsschip|''1995''-2014|
||||||
|Snellius|A802|[[Snellius (2003)]]|HOV|''2003''-|
|Snellius|A803|[[Luymes (2004)]]|HOV|''2004''|
||||||
|De Zeven Provinciën/LCF|F802|[[De Zeven Provinciën (2002)]]|Fregat|''2002''-|
|De Zeven Provinciën/LCF|F803|[[Tromp (2003)]]|Fregat|''2003''-|
|De Zeven Provinciën/LCF|F804|[[De Ruyter (2004)]]|Fregat|''2004''-|
|De Zeven Provinciën/LCF|F805|[[Evertsen (2005)]]|Fregat|''2005''-|
||||||
|Johan de Witt|L801|[[Johan de Witt (2007)]]|LPD|''2007''|
||||||
|Pelikaan|A804|[[Pelikaan (2006)]]|Ondersteuningsvaartuig|''2006''-|
||||||
|Holland|P840|[[Holland (2012)]]|OPV|''2012''-|
|Holland|P841|[[Zeeland (2013)]]|OPV|''2013''-|
|Holland|P842|[[Friesland (2013)]]|OPV|''2013''-|
|Holland|P843|[[Groningen (2013)]]|OPV|''2013''-|
||||||
|Karel Doorman|A833|[[Karel Doorman (2015)]]|JSS|''2015''-|
||||||
|Urania|Y8050|[[Urania (2004)]]|Zeilschip|''2004''-|
||||||
{{||$:/_ship_template}}
* <<slider "Gelderland 1911" Schepen046>>
* <<slider "Gelderland ca. 1920" Schepen080>>
* <<slider "Gelderland 1931" Schepen038>>
* <<slider "Gelderland 1937" Schepen069>>
\define mlist(tag)
<$list filter="[tag[$tag$]sort[title]]">
<$link to={{!!title}}>
<$view field="title"/>
<br>
</$link>
</$list>
\end
\define clist(tag)
<$count filter="[tag[$tag$]]"/>
\end
!! Gemilitariseerde Gouvernements Marine
Bij het uitbreken van de Tweede Wereldoorlog in Europa, op ''1 september 1939'', werd de Gouvernements Marine gemilitariseerd. Officieel kwam de gehele Dienst van Scheepvaart onder bevel van de Commandant Zeemacht (CZM) te staan. De witte schepen waren vanaf dat moment Harer Majesteitsschepen en werden in marinegrijs overgeschilderd:
|Gemilitariseerde Gouvernements Marine |<|<|<|<|h
|Soort |Aantal |Schepen |h
|Dienst der Bebakening en Kustverlichting| <<clist GM1>> |<<mlist GM1>>|
|Opnemingsvaartuigen| <<clist GM2>> |<<mlist GM2>>|
|Werk- en bevoorradingsschepen| <<clist GM3>> |<<mlist GM3>>|
|Opiumjagers| <<clist GM4>> |<<mlist GM4>>|
|Type Aldebaran| <<clist GM5>> |<<mlist GM5>>|
|Type Merel| <<clist GM6>> |<<mlist GM6>>|
|Overige schepen| <<clist GM7>> |<<mlist GM7>>|
De Gemma werd op 22 april 1920 in dienst gesteld bij de Gouvernements Marine en als stationsschip ingezet vanuit Koepang, Timor. Na de militarisering werd het schip, onder gezaghebber P.J. Frenay, toegewezen aan station Makassar, Zuid-Celebes. Halverwege februari 1942 moest Hr. Ms. Gemma opkomen naar Soerabaja om een reparatie te ondergaan met het oog op de uit te voeren oorlogsopdrachten. Hier kwam de Gemma echter niet meer aan toe omdat Celebes door de Japanners veroverd werd en Soerabaja ernstig bedreigd werd. Op 2 maart werd de Gemma door de eigen bemanning tot zinken gebracht aan de Endehkade te Soerabaja. Op 28 januari 1943 werd het schip op last van de bezetter gelicht, hersteld en onder naam Kita Maru als transport- en hulpschip in de vaart gebracht. Na de Tweede Wereldoorlog werd het schip te Makassar teruggevonden en overgedragen aan de Dienst van Scheepvaart. De Gemma werd bij de Gouvernements Marine gebruikt voor hydrografische werkzaamheden in de jaren 1946 en 1947. Daarna werd het schip gebruikt als logementschip te Soerabaja. In 1949 ging de Gemma als zodanig over naar de Indonesische marine.
ex IJM 38, Jenny Elsa, Fuji (1912).<br>De trawler werd in mei 1940 gevorderd en in Engeland omgebouwd tot hulpmijnenveger. Veegde mijnen rond Groot-Brittannië totdat het in 1944 ingericht werd als transportschip voor de mijnendienst. In het voorjaar van 1946 deed het vissersvaartuig dienst als moederschip voor een flottielje mijnenvegers. Op 1 januari 1947 werd het schip teruggegeven aan de oorspronkelijke eigenaar.
<svg
id="svg2"
height="1546.1609"
width="1195.8004">
<g
transform="translate(69.811958,29.982269)"
id="layer5">
<rect
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2935"
width="1195.8004"
height="1546.1609"
x="-69.811958"
y="-29.982269" />
<g
transform="translate(0,-40)"
id="g2055">
<g
id="g6588"
transform="translate(-451.3413,33.12955)">
<rect
y="48"
x="590"
height="4"
width="100"
id="rect6590"
style="opacity:1;fill:#f2f36c;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="48"
x="590"
height="2"
width="1"
id="rect6592"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6594"
width="1"
height="2"
x="592"
y="48" />
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6596"
width="1"
height="2"
x="594"
y="48" />
<rect
y="48"
x="596"
height="2"
width="1"
id="rect6598"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6600"
width="1"
height="2"
x="597.96991"
y="48" />
<rect
y="48"
x="599.96991"
height="2"
width="10"
id="rect6602"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="50"
x="591.03009"
height="2"
width="1"
id="rect6604"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6606"
width="1"
height="2"
x="593.03009"
y="50" />
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6608"
width="1"
height="2"
x="595.03009"
y="50" />
<rect
y="50"
x="597.03009"
height="2"
width="1"
id="rect6610"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect6612"
width="1"
height="2"
x="599"
y="50" />
<rect
y="50"
x="610"
height="2"
width="10"
id="rect6614"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="48"
x="620"
height="2"
width="10"
id="rect6616"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="50"
x="630"
height="2"
width="10"
id="rect6618"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="48"
x="639.96991"
height="2"
width="10"
id="rect6620"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="50"
x="650"
height="2"
width="10"
id="rect6622"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="48"
x="660"
height="2"
width="10"
id="rect6624"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="50"
x="670"
height="2"
width="10"
id="rect6626"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<rect
y="48"
x="680"
height="2"
width="10"
id="rect6628"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="136.65749"
y="92.167702"
id="text6630"><tspan
style="font-size:8.40090561px;line-height:1.25"
id="tspan6632"
x="136.65749"
y="92.167702">0 </tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="161.82584"
y="71.455681"
id="text6634"><tspan
id="tspan6636"
x="161.82584"
y="71.455681"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.10881042px;line-height:125%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start">SCALE</tspan></text>
<text
id="text3786"
y="92.167702"
x="156.64723"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:8.40090561px;line-height:1.25"
y="92.167702"
x="156.64723"
id="tspan3788">2</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="176.61922"
y="92.167702"
id="text3790"><tspan
style="font-size:8.40090561px;line-height:1.25"
id="tspan3792"
x="176.61922"
y="92.167702">4</tspan></text>
<text
id="text3794"
y="92.167702"
x="196.34615"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:8.40090561px;line-height:1.25"
y="92.167702"
x="196.34615"
id="tspan3796">6</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="234.16757"
y="92.167702"
id="text3798"><tspan
style="font-size:8.40090561px;line-height:1.25"
id="tspan3800"
x="234.16757"
y="92.167702">10 m</tspan></text>
<text
id="text3802"
y="92.167702"
x="216.31813"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:Arial;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:8.40090561px;line-height:1.25"
y="92.167702"
x="216.31813"
id="tspan3804">8</tspan></text>
</g>
</g>
<g
transform="translate(69.811958,29.982269)"
id="g7511">
<path
id="path7455"
d="M -56.4696,744.81016 V 1499.6792"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="1470.3236"
x="-55.929306"
height="29.30588"
width="1168.963"
id="rect7445"
style="opacity:1;fill:#eebeff;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 1113.5304,744.81016 V 1499.6792"
id="path7441" />
<text
id="text7449"
y="1490.5697"
x="599.02344"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="1490.5697"
x="599.02344"
id="tspan7447">117.0 m</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="443.53516"
y="1490.5697"
id="text7453"><tspan
id="tspan7451"
x="443.53516"
y="1490.5697"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">Stratolaunch</tspan></text>
<path
style="fill:#ff72ff;fill-opacity:0.39215686;stroke-width:0.28878653"
d="m 365.56547,1190.1233 c -1.523,-18.52 -1.59,-35.9762 -3.39,-55.2692 -30.821,-2.8559 -61.497,-4.1665 -94.057,-7.2883 -0.356,-0.3568 1.769,-32.9532 2.184,-33.5056 31.506,-6.0016 53.736,-8.5374 88.552,-14.8612 0.165,-0.1712 -7.865,-287.90642 -8.04,-288.08162 -0.07,-0.072 -46.524,-0.2944 -103.227,-0.4942 l -103.0973,-0.3636 -99.7004,-11.4769 c -54.8352,-6.3122 -99.7398,-11.5121 -99.788,-11.5551 -0.048,-0.043 -0.1009,-7.4083 -0.1168,-16.3673 -0.03,-16.815 0.116,-19.624 1.1673,-22.4599 0.2956,-0.7969 0.7785,-1.4789 1.2076,-1.7048 0.4041,-0.2128 42.6363,-5.7193 97.097,-12.6599 53.0101,-6.7558 98.8832,-12.6047 101.9404,-12.9975 5.5325,-0.7107 5.6741,-0.714 30.3718,-0.714 h 24.8133 l 6e-4,-2.2398 c 6e-4,-1.7997 -2.8055,-24.4387 -3.3294,-26.8618 -0.1141,-0.528 -0.367,-0.6492 -1.5064,-0.7225 -1.3167,-0.084 -1.3835,-0.1327 -1.7466,-1.2439 -0.6593,-2.0196 -1.5027,-7.6546 -1.8288,-12.2191 -0.3428,-4.7979 -0.026,-11.9133 0.7698,-17.2895 0.704,-4.7563 0.4186,-4.3045 2.9639,-4.6919 6.3334,-0.9637 12.4278,-1.066 18.8167,-0.3155 4.3743,0.5137 4.1353,0.2982 4.8653,4.3942 1.3,7.2974 1.55,14.0776 0.766,20.7873 -0.52,4.4555 -1.503,9.193 -2.019,9.7278 -0.208,0.2166 -0.9764,0.4609 -1.7069,0.5434 -0.7306,0.083 -1.3283,0.178 -1.3283,0.2128 0,0.034 -0.9739,6.1543 -2.1643,13.5992 -1.1903,7.445 -2.1643,13.5691 -2.1643,13.609 0,0.039 -0.422,0.113 -0.9378,0.1633 -0.8803,0.084 -0.9433,0.1659 -1.0266,1.3188 l -0.089,1.2283 h 24.2562 24.257 l -0.02,-2.6733 c -0.01,-1.5648 -0.696,-7.707 -1.66,-14.8115 l -1.645,-12.1382 -1.432,-0.1444 c -1.412,-0.1428 -1.437,-0.1625 -1.814,-1.445 -1.927,-6.5605 -2.402,-19.3048 -1.078,-28.9005 0.682,-4.9483 0.574,-4.7574 2.928,-5.1452 5.809,-0.9567 12.498,-1.0723 18.854,-0.3257 4.362,0.5123 4.174,0.3541 4.874,4.111 1.052,5.6505 1.269,8.617 1.103,15.0593 -0.159,6.1645 -0.303,7.4804 -1.399,12.8005 -0.578,2.8058 -0.648,2.9605 -1.481,3.2513 -0.481,0.1678 -1.245,0.3054 -1.697,0.3054 -0.453,0 -0.823,0.116 -0.823,0.257 0,0.3345 -4.009,25.6951 -4.196,26.5483 -0.11,0.4968 -0.346,0.6502 -1.004,0.6502 -0.827,0 -0.86,0.05 -0.86,1.3005 v 1.3006 h 23.518 23.519 v -2.1309 c 0,-1.687 -2.604,-22.5971 -3.324,-26.6974 -0.157,-0.8932 -0.228,-0.9392 -1.441,-0.9392 -1.523,0 -1.683,-0.2234 -2.319,-3.2324 -1.332,-6.2949 -1.825,-13.9783 -1.316,-20.466 0.353,-4.4904 1.162,-10.7703 1.446,-11.2175 0.235,-0.3723 6.051,-1.1497 10.272,-1.3733 5.219,-0.2763 13.93,0.5518 14.782,1.4052 0.2,0.2003 0.699,2.3113 1.109,4.6911 1.005,5.8425 1.245,13.4392 0.599,18.9808 -0.566,4.8571 -1.548,9.7762 -2.056,10.3049 -0.209,0.2165 -0.97,0.4601 -1.692,0.5415 -1.133,0.1282 -1.335,0.2525 -1.471,0.9072 -0.156,0.756 -4.201,26.2346 -4.201,26.4664 0,0.066 -0.422,0.1625 -0.938,0.2124 -0.874,0.084 -0.943,0.1705 -1.024,1.2801 l -0.09,1.1894 2.011,0.1984 2.012,0.1985 11.836,-4.5436 11.837,-4.5434 0.145,-1.7576 c 0.08,-0.9667 0.353,-42.0097 0.606,-91.2066 0.265,-51.4506 0.583,-91.0442 0.747,-93.2041 1.617,-21.2379 6.739,-37.4728 13.169,-41.7381 3.425,-2.2723 6.42,-1.828 9.608,1.4259 5.725,5.8412 9.499,20.1897 10.669,40.5631 0.18,3.133 0.297,23.0676 0.297,50.7204 0,25.057 0.09,65.7198 0.192,90.3617 l 0.191,44.8034 10.846,4.5503 10.846,4.5504 52.218,-0.078 52.217,-0.078 c 2.186,-12.6787 3.893,-26.5086 9.107,-37.5806 5.589,-11.5591 12.333,-11.5554 17.906,0.015 5.434,14.2316 7.169,24.1537 9.09,37.5706 l 52.275,0.074 52.275,0.072 7.6,-3.1899 c 4.18,-1.7545 9.04,-3.8008 10.8,-4.5473 l 3.199,-1.3574 0.191,-45.2345 c 0.105,-24.879 0.194,-65.5877 0.196,-90.4638 0,-26.0819 0.125,-47.3703 0.289,-50.2868 1.133,-20.1154 4.962,-34.6317 10.673,-40.4589 2.056,-2.098 3.402,-2.7516 5.627,-2.7327 2.63,0.023 4.687,1.296 6.977,4.3204 4.565,6.0275 7.986,17.8621 9.775,33.8136 0.603,5.3761 0.847,28.0061 1.269,117.7695 0.182,38.7049 0.396,71.0289 0.475,71.8311 l 0.144,1.4585 11.848,4.5508 c 11.522,4.4255 11.902,4.5485 13.766,4.4662 l 1.918,-0.084 0.09,-1.3728 0.09,-1.3728 h -1.026 c -0.564,0 -1.026,-0.08 -1.026,-0.1776 0,-0.2687 -4.02,-25.5745 -4.201,-26.4473 -0.137,-0.6547 -0.338,-0.7791 -1.471,-0.907 -0.722,-0.081 -1.485,-0.3254 -1.696,-0.5418 -2.959,-10.3734 -3.059,-22.0691 -0.902,-32.3276 0.267,-1.2203 0.513,-1.667 1.063,-1.9268 2.375,-1.1238 14.855,-1.4482 20.914,-0.5437 1.905,0.2842 3.541,0.6396 3.636,0.7895 1.349,10.9458 3.625,23.7546 -0.671,34.5546 -0.162,0.1988 -0.852,0.3613 -1.535,0.3613 -1.122,0 -1.255,0.075 -1.399,0.7948 -0.706,3.53 -3.359,25.3462 -3.289,27.0498 l 0.08,2.0674 23.446,0.074 23.446,0.074 v -1.4467 c 0,-1.4128 -0.02,-1.4467 -0.86,-1.4467 -0.658,0 -0.894,-0.153 -1.002,-0.6502 -0.177,-0.8123 -4.201,-26.2918 -4.199,-26.5885 0,-0.119 -0.369,-0.2166 -0.822,-0.2166 -0.452,0 -1.216,-0.1368 -1.697,-0.3053 -0.833,-0.2907 -0.903,-0.4456 -1.481,-3.2513 -1.096,-5.3201 -1.24,-6.636 -1.399,-12.8005 -0.166,-6.4423 0.05,-9.4088 1.103,-15.0593 0.7,-3.7567 0.513,-3.5987 4.874,-4.1111 6.386,-0.7499 12.484,-0.648 18.808,0.3145 l 2.215,0.3371 0.305,1.7596 c 1.75,10.0952 1.601,22.9509 -0.357,30.7619 l -0.627,2.4993 -1.443,0.1444 -1.442,0.1443 -1.641,12.1382 c -0.997,7.3742 -1.649,13.2447 -1.66,14.9575 l -0.02,2.8195 24.168,-0.074 24.168,-0.074 v -1.3006 c 0,-1.2559 -0.03,-1.3035 -0.938,-1.3909 -0.516,-0.05 -0.938,-0.1251 -0.938,-0.166 0,-0.1039 -3.989,-25.2396 -4.185,-26.3671 -0.143,-0.8275 -0.266,-0.9149 -1.478,-1.0517 -0.727,-0.081 -1.493,-0.3262 -1.701,-0.5427 -1.039,-1.0783 -2.447,-11.1649 -2.447,-17.5264 0,-6.1833 1.247,-15.7743 2.149,-16.524 0.552,-0.4584 2.822,-0.8142 7.6,-1.1914 4.519,-0.3568 10.281,-0.11 15.15,0.6475 2.519,0.3921 2.238,-0.056 2.941,4.6924 0.81,5.4694 1.113,12.4759 0.757,17.4835 -0.327,4.5896 -1.14,9.9494 -1.832,12.0706 -0.345,1.0598 -0.424,1.1144 -1.731,1.1985 -1.139,0.074 -1.392,0.1946 -1.507,0.7225 -0.689,9.3372 -3.478,17.1189 -3.267,27.0481 l 0.08,2.1978 25.827,0.03 25.827,0.026 100.99903,12.9215 c 66.8709,8.5553 101.2089,13.0587 101.6209,13.3277 0.748,0.4885 1.415,2.4049 1.859,5.3413 0.289,1.9154 0.482,34.8521 0.205,35.1161 -0.05,0.047 -44.9549,5.2492 -99.7899,11.5599 l -99.70003,11.474 -103.095,0.3587 c -56.701,0.1973 -103.154,0.4185 -103.227,0.4917 -0.258,0.2585 -8.167,287.95162 -7.92,288.10542 0.137,0.086 2.104,0.454 4.371,0.8184 49.086,7.8924 83.812,13.6822 84.058,14.0147 0.424,0.5724 2.54,33.1562 2.177,33.5193 -33.927,3.4354 -46.569,3.0201 -94.053,7.2886 -0.06,0.056 -0.863,12.9309 -1.786,28.6113 -0.923,15.6805 -1.718,28.5427 -1.768,28.5827 -0.05,0.041 -0.559,0.015 -1.134,-0.059 -1.006,-0.1266 -1.051,-0.1814 -1.196,-1.4763 -0.08,-0.74 -1.16,-13.3753 -2.394,-28.0785 -1.234,-14.7031 -2.329,-26.8337 -2.434,-26.9572 -37.411,-3.843 -47.74,-2.7582 -93.704,-7.5451 -0.168,-0.1686 1.283,-28.9637 1.589,-31.514 l 0.205,-1.7128 c 31.089,-5.1318 58.293,-9.6361 89.023,-14.7218 l -0.01,-1.186 c -3.779,-101.6766 -6.699,-179.1319 -10.804,-288.45672 l -62.384,-0.072 c -59.233,-0.069 -62.39,-0.047 -62.524,0.4335 -0.08,0.2785 -0.224,1.5469 -0.326,2.8185 -3.473,14.30329 -3.298,53.94592 -17.501,58.38732 -1.372,0.3016 -3.749,-1.0276 -5.227,-2.9226 -9.283,-16.6492 -11.448,-34.9825 -13.204,-53.87522 -0.179,-1.9868 -0.384,-3.9054 -0.456,-4.2635 l -0.133,-0.6509 -62.397,0.072 -62.397,0.072 c -3.277,96.16132 -7.664,192.28632 -10.804,288.45222 l -0.02,1.1817 c 29.676,4.8988 59.35,9.8149 89.023,14.7384 l 0.207,1.5644 c 0.304,2.2922 1.755,31.4865 1.574,31.6679 -32.541,2.2122 -58.96,3.8308 -93.686,7.5287 -2.105,19.7793 -2.849,35.3215 -4.983,56.3057 -0.04,0.03 -0.547,0.1429 -1.128,0.2476 l -1.057,0.1912 -0.163,-2.1036 z"
id="path7423-3" />
</g>
<g
transform="translate(69.811958,29.982269)"
style="display:inline"
id="layer4">
<path
id="path2040"
d="m 529.74928,543.27254 c -0.80011,0.0536 -1.60298,0.29441 -2.40393,0.68804 -4.41678,2.17064 -8.1778,7.86843 -12.39433,18.85844 -6.04758,15.76248 -9.60978,28.48761 -13.33093,47.63085 -3.11268,16.01305 -5.92833,42.10245 -7.52401,68.24065 v 28.02182 h -1.31124 l -0.24976,6.63017 -3.99616,0.68803 c -2.19788,0.36638 -7.48029,0.95771 -11.73871,1.3448 l -7.74255,0.71931 v -21.14147 c 0,-7.05194 -0.0221,-11.69278 -0.12488,-14.91786 l -0.43708,-5.94213 c -0.0626,-2.88381 -3.43419,-1.36694 -3.43419,-5.37919 -2e-5,-1e-5 19.50657,-0.19862 19.48126,-1.43862 2e-5,-1.06575 -20.04322,-0.87568 -20.04322,-0.87568 0,10e-6 -0.81785,-2.70365 -1.99808,-4.31587 -0.68841,-0.94037 -1.24709,-1.00077 -1.99808,-1.00077 -0.75099,0 -1.30965,0.0604 -1.99808,1.00077 -1.18023,1.61222 -1.99806,4.31588 -1.99808,4.31587 0,0 -20.04321,-0.19007 -20.04322,0.87568 -0.0253,1.24 19.48125,1.43861 19.48126,1.43862 0,4.01225 -3.37159,2.49538 -3.43419,5.37919 l -0.34342,5.94213 c -0.0958,3.45007 -0.0937,8.35582 -0.0937,15.76227 v 22.64264 l -20.23054,2.3143 c -11.1268,1.27963 -21.46684,2.58928 -22.9779,2.87724 l -2.74736,0.50039 v -21.48548 c 0,-6.99008 -0.0287,-11.60871 -0.12488,-14.8866 l -0.40586,-7.00545 c -0.0626,-2.88381 -3.43418,-1.36694 -3.43419,-5.37919 -2e-5,-10e-6 19.50658,-0.19862 19.48126,-1.43862 2e-5,-1.06575 -20.04321,-0.87569 -20.04322,-0.87569 0,10e-6 -0.81784,-2.70364 -1.99808,-4.31586 -0.68841,-0.94037 -1.24708,-1.00078 -1.99808,-1.00078 -0.75099,0 -1.30964,0.0604 -1.99808,1.00078 -1.18023,1.61222 -1.99805,4.31587 -1.99808,4.31586 0,0 -20.0432,-0.19006 -20.04322,0.87569 -0.0253,1.24 19.48126,1.43861 19.48126,1.43862 0,4.01225 -3.37158,2.49538 -3.43419,5.37919 l -0.37464,7.00545 c -0.0821,3.43993 -0.0937,8.1648 -0.0937,15.16807 v 22.76773 l -8.24207,1.12588 c -4.53314,0.62005 -14.98558,1.90419 -23.22766,2.87724 l -14.98559,1.78263 -0.28098,-21.67313 c -0.004,-0.29065 -0.19281,-12.43357 -0.34342,-15.63717 l -0.37464,-6.44252 c -0.0626,-2.88381 -3.43415,-1.36694 -3.43419,-5.37919 -2e-5,-10e-6 19.50661,-0.19862 19.48126,-1.43862 2e-5,-1.06575 -20.04318,-0.87568 -20.04322,-0.87568 0,1e-5 -0.81781,-2.70365 -1.99808,-4.31587 -0.68841,-0.94037 -1.24705,-1.00077 -1.99808,-1.00077 -0.75099,0 -1.30961,0.0604 -1.99808,1.00077 -1.18023,1.61222 -1.99801,4.31588 -1.99807,4.31587 0,0 -20.04318,-0.19007 -20.04323,0.87568 -0.0253,1.24 19.4813,1.43861 19.48127,1.43862 0,4.01225 -3.37156,2.49538 -3.4342,5.37919 l -0.40586,6.44252 c -0.0775,2.8516 -0.0937,15.66991 -0.0937,16.20011 v 23.20558 l -22.22862,2.68959 c -12.22574,1.47472 -22.56578,2.67144 -22.9779,2.65832 -0.4121,-0.0131 -0.74927,-10.16417 -0.74928,-22.54881 0,-3.07153 -0.0541,-15.14662 -0.1561,-17.41982 l -0.3122,-4.59733 c -0.0626,-2.8838 -3.4342,-1.36692 -3.43419,-5.37919 -2e-5,-10e-6 19.50656,-0.1986 19.48126,-1.43862 2e-5,-1.06575 -20.04323,-0.87567 -20.04322,-0.87568 0,10e-6 -0.81786,-2.70364 -1.99808,-4.31586 -0.68841,-0.94037 -1.2471,-1.00077 -1.99808,-1.00078 -0.75099,0 -1.30966,0.0604 -1.99808,1.00078 -1.18023,1.61221 -1.99806,4.31588 -1.99807,4.31586 0,0 -20.04323,-0.19006 -20.04323,0.87568 -0.0253,1.24001 19.48125,1.43862 19.48127,1.43862 0,4.01226 -3.37161,2.4954 -3.4342,5.37919 l -0.40586,4.59733 c -0.0551,1.87812 -0.12488,14.44526 -0.12488,17.63874 v 24.20635 l -3.24688,0.56294 c -4.30109,0.74201 -41.2941,5.22495 -50.35781,6.0985 l -7.11815,0.68804 -0.71806,-3.37763 c -1.92823,-9.33961 -6.00019,-16.88817 -9.11623,-16.88816 -2.34376,0 -5.33747,5.78807 -7.30548,14.04219 -1.08055,4.53196 -2.11691,8.35444 -2.27905,8.50663 -0.16214,0.15219 -6.12536,0.97496 -13.26849,1.84518 -28.85532,3.51528 -72.1752,8.71307 -92.910585,11.13367 -12.088373,1.41118 -22.997068,2.79557 -24.226697,3.06489 -1.33428,0.29224 -3.037405,2.09923 -4.245916,4.47223 -2.40663,4.72561 -4.988185,17.47418 -4.963975,24.48783 0.01838,5.3246 2.142562,19.77675 3.871276,26.20791 1.903776,7.08239 2.34817,7.31812 15.922185,8.35025 6.76108,0.5141 17.9806,1.41176 24.944756,1.97029 13.263496,1.06377 71.301796,5.59294 115.576286,9.03829 28.54192,2.22107 59.32946,4.66791 69.43321,5.50428 3.57156,0.29564 23.80212,1.89044 44.95676,3.53401 67.14918,5.21704 148.64778,11.66585 164.02972,12.97885 6.41348,0.54747 12.50859,0.9695 13.54947,0.96951 1.78408,0 1.9955,2.16447 4.12103,37.77942 2.43924,40.87164 6.25824,87.80989 11.11431,136.85659 1.68944,17.0633 3.35134,33.8389 3.68396,37.2791 0.33476,3.4626 0.21381,6.2543 -0.28098,6.2548 -0.9188,0 -9.62638,1.5233 -69.83907,12.0407 -19.23151,3.3592 -41.52687,7.1977 -49.5461,8.5379 -21.28213,3.5566 -27.12212,6.1435 -33.24926,14.7927 -2.50343,3.534 -2.9085,4.9572 -2.87224,10.7584 0.0534,8.5485 2.29581,13.5898 9.61575,21.6106 8.10656,8.8827 18.48392,14.1735 32.12535,16.3565 7.13721,1.1422 10.72313,1.4861 59.4116,6.0359 60.37216,5.6417 60.24846,5.6496 63.22044,4.5348 2.10264,-0.7887 3.00039,-0.7372 3.5903,0.2189 0.43086,0.6984 1.3705,8.2181 2.09174,16.7318 0.72121,8.5137 1.63557,15.4808 2.02929,15.4808 0.39373,0 1.30807,-6.967 2.0293,-15.4808 0.72123,-8.5137 1.6609,-16.0334 2.09174,-16.7318 0.5899,-0.9561 1.48767,-1.0076 3.5903,-0.2189 2.972,1.1148 2.84829,1.1069 63.22044,-4.5348 48.68847,-4.5498 52.27435,-4.8938 59.4116,-6.0359 13.64142,-2.183 24.01878,-7.4738 32.12535,-16.3565 7.31995,-8.0208 9.53113,-13.0621 9.58453,-21.6106 0.0363,-5.8012 -0.33763,-7.2244 -2.84102,-10.7584 -6.12715,-8.6492 -11.96712,-11.236 -33.24927,-14.7927 -8.01922,-1.3402 -30.31458,-5.1787 -49.54609,-8.5379 -60.21268,-10.5175 -68.92027,-12.0395 -69.83907,-12.0407 -0.49478,-5e-4 -0.61575,-2.7922 -0.28098,-6.2548 0.33259,-3.4402 1.99452,-20.2158 3.68395,-37.2791 4.8561,-49.04669 8.67508,-95.98496 11.11431,-136.85659 2.12553,-35.61494 2.33698,-37.77943 4.12104,-37.77942 1.04089,0 7.13597,-0.42203 13.54947,-0.96951 15.38195,-1.31301 96.88055,-7.7618 164.02972,-12.97885 21.15465,-1.64358 41.3852,-3.23837 44.95676,-3.53401 10.10376,-0.83637 40.89129,-3.28322 69.43321,-5.50428 44.27448,-3.44534 102.31287,-7.97451 115.57633,-9.03829 6.96415,-0.55854 18.18366,-1.45618 24.94476,-1.97029 13.5741,-1.03214 14.0183,-1.26787 15.9222,-8.35025 1.7287,-6.43115 3.8529,-20.88332 3.8713,-26.20791 0.024,-7.01364 -2.5575,-19.76223 -4.9639,-24.48783 -1.2096,-2.37299 -2.9117,-4.18 -4.246,-4.47223 -1.2307,-0.26931 -12.13831,-1.6537 -24.22673,-3.06489 -20.73539,-2.42061 -64.05531,-7.6184 -92.91063,-11.13367 -7.14313,-0.87021 -13.10638,-1.69298 -13.26849,-1.84518 -0.16214,-0.1522 -1.19849,-3.97466 -2.27906,-8.50663 -1.968,-8.25413 -4.9617,-14.0422 -7.30547,-14.04219 -3.11604,0 -7.18803,7.54854 -9.11623,16.88816 l -0.71806,3.37763 -7.11815,-0.68804 c -9.06372,-0.87355 -46.05671,-5.35648 -50.35782,-6.0985 l -3.24687,-0.56294 v -24.20635 c 0,-8.50818 -0.0176,-13.98175 -0.12488,-17.63874 l -0.40586,-4.59733 c -0.0626,-2.88379 -3.4342,-1.36693 -3.4342,-5.37919 3e-5,0 19.50658,-0.19861 19.48126,-1.43862 10e-6,-1.06574 -20.04322,-0.87568 -20.04322,-0.87568 0,2e-5 -0.81784,-2.70365 -1.99808,-4.31586 -0.6884,-0.94036 -1.24709,-1.00078 -1.99807,-1.00078 -0.75097,10e-6 -1.30967,0.0604 -1.99808,1.00078 -1.18022,1.61222 -1.99808,4.31587 -1.99808,4.31586 2e-5,10e-6 -20.04324,-0.19007 -20.04322,0.87568 -0.0253,1.24002 19.48128,1.43861 19.48126,1.43862 2e-5,4.01227 -3.37162,2.49539 -3.4342,5.37919 l -0.3122,4.59733 c -0.15432,3.43998 -0.1561,8.70807 -0.1561,17.41982 0,12.38465 -0.33716,22.53569 -0.74928,22.54881 -0.4121,0.0131 -10.75214,-1.18361 -22.97789,-2.65832 l -22.22862,-2.68959 v -23.20558 c 0,-7.62092 0.002,-12.66631 -0.0937,-16.20011 l -0.40586,-6.44252 c -0.0626,-2.88381 -3.4342,-1.36694 -3.4342,-5.37919 -2e-5,-10e-6 19.50658,-0.19862 19.48126,-1.43862 -4e-5,-1.06575 -20.04322,-0.87568 -20.04322,-0.87568 -5e-5,1e-5 -0.81784,-2.70365 -1.99808,-4.31587 -0.68845,-0.94037 -1.24709,-1.00077 -1.99807,-1.00077 -0.75102,0 -1.30967,0.0604 -1.99808,1.00077 -1.18027,1.61222 -1.99808,4.31588 -1.99808,4.31587 -3e-5,0 -20.04324,-0.19007 -20.04322,0.87568 -0.0254,1.24 19.48128,1.43861 19.48126,1.43862 -3e-5,4.01225 -3.37162,2.49538 -3.4342,5.37919 l -0.37464,6.44252 c -0.15635,3.32593 -0.25133,8.20471 -0.34342,15.63717 l -0.28098,21.67313 -14.98558,-1.78263 c -8.24207,-0.97305 -18.69451,-2.25719 -23.22766,-2.87724 l -8.24207,-1.12588 v -22.76773 c 0,-7.00327 -0.0116,-11.72814 -0.0937,-15.16807 l -0.37464,-7.00545 c -0.0626,-2.88381 -3.4342,-1.36694 -3.4342,-5.37919 10e-6,-10e-6 19.50658,-0.19862 19.48126,-1.43862 -10e-6,-1.06575 -20.04322,-0.87569 -20.04322,-0.87569 -2e-5,10e-6 -0.81784,-2.70364 -1.99807,-4.31586 -0.68843,-0.94037 -1.2471,-1.00078 -1.99808,-1.00078 -0.75099,0 -1.30967,0.0604 -1.99808,1.00078 -1.18024,1.61222 -1.99808,4.31587 -1.99808,4.31586 0,0 -20.04324,-0.19006 -20.04322,0.87569 -0.0253,1.24 19.48128,1.43861 19.48126,1.43862 0,4.01225 -3.37162,2.49538 -3.4342,5.37919 l -0.40586,7.00545 c -0.0962,3.27789 -0.12487,7.89652 -0.12487,14.8866 v 21.48548 l -2.74736,-0.50039 c -1.51105,-0.28796 -11.85109,-1.5976 -22.9779,-2.87724 l -20.23054,-2.3143 v -22.64264 c 0,-7.40645 0.002,-12.3122 -0.0937,-15.76227 l -0.34342,-5.94213 c -0.0626,-2.88381 -3.4342,-1.36694 -3.4342,-5.37919 2e-5,-1e-5 19.50658,-0.19862 19.48126,-1.43862 0,-1.06575 -20.04322,-0.87568 -20.04322,-0.87568 -10e-6,10e-6 -0.81784,-2.70365 -1.99807,-4.31587 -0.68842,-0.94037 -1.2471,-1.00077 -1.99808,-1.00077 -0.75098,0 -1.30967,0.0604 -1.99808,1.00077 -1.18023,1.61222 -1.99808,4.31588 -1.99808,4.31587 10e-6,0 -20.04324,-0.19007 -20.04322,0.87568 -0.0253,1.24 19.48128,1.43861 19.48126,1.43862 10e-6,4.01225 -3.37162,2.49538 -3.4342,5.37919 l -0.43707,5.94213 c -0.10282,3.22508 -0.12488,7.86592 -0.12488,14.91786 v 21.14147 l -7.74256,-0.71931 c -4.2584,-0.3871 -9.54081,-0.97842 -11.73871,-1.3448 l -3.99615,-0.68803 -0.65562,-16.98198 c -0.62841,-16.41127 -2.86378,-45.55244 -4.90154,-63.89351 -1.05081,-9.45802 -5.2243,-31.92185 -7.46157,-40.18755 -9.21118,-34.03157 -16.96057,-49.52473 -24.695,-49.00693 z"
style="fill:#c5aa17;fill-opacity:0.70588235" />
<rect
y="1429.7787"
x="42.475868"
height="30"
width="975"
id="rect22309"
style="opacity:1;fill:#d6c35b;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
id="path24081"
d="M 42.47587,794.78149 V 1459.4625"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 1017.5304,794.81016 V 1459.6792"
id="path24970" />
<text
id="text24972"
y="1450.5697"
x="609.02344"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="1450.5697"
x="609.02344"
id="tspan24974">97.5 m</tspan></text>
<path
id="path11088"
d="m 635.03677,-20.323281 c -3.53865,-0.032 -7.10572,0.623475 -10.26031,1.98902 -9.09881,3.938575 -15.14885,11.8345 -30.24769,39.466075 -1.36634,2.500536 -3.94379,7.04702 -5.74209,10.10335 -4.35988,7.409316 -30.00831,52.327926 -34.60907,60.619726 -2.00423,3.6119 -6.41421,11.3409 -9.7897,17.1756 -3.3756,5.8346 -7.25242,12.6544 -8.6288,15.155 l -2.51018,4.5464 h -18.16739 c -9.99423,-0.007 -58.04171,-0.1464 -106.77688,-0.284 l -88.60939,-0.2527 -4.01629,-3.7887 c -7.49691,-7.0914 -9.60556,-8.0195 -25.47834,-11.3662 -5.96871,-1.2585 -13.32756,-1.9891 -20.17553,-1.9891 -9.82686,0 -12.00509,0.3807 -24.72529,4.2938 l -13.96293,4.294 -25.10181,0.1579 c -13.806,0.0878 -26.57027,0.4926 -28.36505,0.884 l -3.26323,0.69465 -0.28235,0.0943 c -0.091,-9.8184 -0.37874,-17.144 -0.72173,-17.144 -0.34791,0 -0.63537,7.5465 -0.72162,17.586 l -6.05587,1.8944 c -0.0891,-9.9155 -0.37672,-17.3335 -0.72162,-17.3334 -0.34962,0 -0.63709,7.6239 -0.72173,17.7439 l -5.58515,0.6314 c -0.10674,-8.9534 -0.36709,-15.4076 -0.6903,-15.4075 -0.32502,0 -0.58487,6.5337 -0.6903,15.56537 l -5.89893,0.41043 c -0.12942,-7.1535 -0.37793,-12.187 -0.65887,-12.187 -0.28245,0 -0.53005,5.07309 -0.65897,12.2817 l -0.94132,0.0629 c -4.55598,0.3125 -15.287,0.8242 -23.84672,1.1366 -21.62922,0.7895 -40.091792,2.4255 -42.578949,3.7572 -1.152274,0.6169 -4.138697,3.0739 -6.620603,5.462 -3.460225,3.3292 -6.621296,5.0883 -13.554978,7.5143 -4.973322,1.74 -13.014747,5.1736 -17.885041,7.6407 C 28.011464,160.08219 25,162.93169 25,170.88169 c 0,6.3897 2.20426,11.0453 7.34228,15.4706 7.18445,6.188 27.231981,14.8894 45.371524,19.6698 21.214655,5.5909 69.721686,11.7997 114.464256,14.6499 11.59704,0.7387 25.60385,1.1635 31.12625,0.9472 5.5224,-0.2164 16.81821,-0.6656 25.10181,-0.9788 20.96534,-0.7928 22.59163,-1.0892 22.59163,-4.1044 0,-2.0738 0.48658,-2.422 3.26324,-2.4312 1.79478,-0.006 16.14046,-0.91141 31.8793,-1.989 15.73883,-1.0778 40.13779,-2.6719 54.21991,-3.5362 31.82076,-1.953 48.65324,-3.3333 57.73417,-4.7359 8.35207,-1.2902 40.28981,-8.064 68.27692,-14.492 23.17932,-5.3239 45.33759,-10.30471 93.88078,-21.1221 19.05227,-4.2459 38.25516,-8.59161 42.67308,-9.6613 4.41792,-1.0698 16.16556,-3.7786 26.10588,-5.9989 38.39864,-8.5775 40.28841,-9.0926 41.41799,-11.5872 1.19465,-2.6384 0.7403,-7.4295 -4.33006,-43.0653 -10.32679,-72.579296 -10.78816,-75.252744 -12.48815,-76.785076 -0.92475,-0.833545 -2.1941,-3.334074 -2.82396,-5.55676 -3.06533,-10.816995 -14.52149,-26.798235 -23.2505,-32.425385 -3.4767,-2.24116 -7.96982,-3.43198 -12.51958,-3.47295 z"
style="fill:#c5ab16;fill-opacity:0.70588235" />
<rect
y="251.6756"
x="25"
height="30"
width="666"
id="rect8993"
style="opacity:1;fill:#d6c35b;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="text8995"
y="272.46661"
x="499.02344"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="272.46661"
x="499.02344"
id="tspan8997">66.6 m</tspan></text>
<text
id="text9011"
y="321.42169"
x="387.52414"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="321.42169"
x="387.52414"
id="tspan9013">Airbus A380-800 - 79.6 m</tspan></text>
<path
id="path9040"
d="m 691.00984,133.80909 v 147.8982"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
transform="rotate(90)"
y="-1084"
x="-20.324997"
height="30"
width="242"
id="rect1930"
style="fill:#d6c35b;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
transform="rotate(90)"
id="text1932"
y="-1062.624"
x="147.02344"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="-1062.624"
x="147.02344"
id="tspan1934">24.2 m</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-13.777061"
y="-1062.624"
id="text3866"
transform="rotate(90)"><tspan
id="tspan3868"
x="-13.777061"
y="-1062.624"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">Spruce Goose </tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="208.53516"
y="272.46661"
id="text3870"><tspan
id="tspan3872"
x="208.53516"
y="272.46661"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">Hughes H-4 Spruce Goose</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="313.53516"
y="1450.5697"
id="text3898"><tspan
id="tspan3900"
x="313.53516"
y="1450.5697"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">Hughes H-4 Spruce Goose</tspan></text>
</g>
<g
transform="translate(69.811958,29.982269)"
style="display:inline"
id="layer3">
<path
id="path3851"
d="m 368.31848,1299.0571 c -1.1404,-3.165 -1.94245,-11.2687 -2.72904,-27.5739 -0.61268,-12.7003 -1.69461,-32.3358 -2.40429,-43.6344 -1.21629,-19.3646 -1.18027,-20.9772 0.62811,-28.1114 2.04741,-8.0773 3.70571,-10.7088 6.15525,-9.7676 3.07722,1.1822 4.5469,5.2544 5.24373,14.5291 0.38503,5.125 1.01716,9.5143 1.40473,9.7541 0.38756,0.2398 1.57209,-0.339 2.63229,-1.2862 1.0602,-0.9472 4.85126,-3.9641 8.42459,-6.7042 3.57333,-2.7399 10.10688,-7.8149 14.519,-11.2776 4.41212,-3.4627 14.79063,-11.5188 23.06335,-17.9025 8.27273,-6.3837 15.71818,-12.1612 16.54546,-12.8389 0.82727,-0.6776 8.27272,-6.3999 16.54545,-12.716 8.27273,-6.3162 15.56208,-11.9541 16.19856,-12.5287 0.63648,-0.5747 5.92531,-4.6591 11.75296,-9.0766 8.96417,-6.7951 10.60024,-8.4634 10.62513,-10.8341 0.0162,-1.5413 -1.07815,-14.6432 -2.43182,-29.1154 -3.55593,-38.0168 -4.71352,-72.5383 -4.89709,-146.03982 l -0.16234,-65.00551 -4.84176,-0.30922 c -4.19806,-0.2681 -4.91432,-0.0314 -5.38753,1.78036 -0.46917,1.79635 -0.70438,1.87765 -1.67614,0.57935 -1.4301,-1.91063 -1.23421,-1.89743 -25.33024,-1.70757 -20.01448,0.1577 -20.19439,0.17858 -20.83339,2.41803 -0.63263,2.2171 -0.67379,2.20541 -2.22222,-0.63143 -1.53145,-2.80572 -1.75831,-2.87499 -7.74512,-2.36488 -3.3921,0.28903 -8.9877,1.32492 -12.43467,2.302 -5.39287,1.52865 -6.26722,2.1037 -6.26722,4.12184 0,2.64122 -2.71812,3.26658 -3.64839,0.83938 -0.31746,-0.82828 -1.3984,-1.50597 -2.40209,-1.50597 -1.48529,0 -19.00443,4.29618 -41.25833,10.11768 -3.00969,0.78731 -3.91,1.63555 -4.8893,4.60647 l -1.20032,3.64146 -1.61017,-2.65694 c -0.89347,-1.47431 -2.51105,-2.65174 -3.63412,-2.64526 -4.07746,0.0236 -29.92592,6.92312 -30.73751,8.20458 -0.46034,0.72684 -0.84389,2.42259 -0.85234,3.76832 l -0.0154,2.44679 -2.75757,-2.58581 -2.75758,-2.5858 -15.18982,5.52582 c -14.50848,5.27795 -15.21726,5.66322 -15.80171,8.58903 l -0.6119,3.0632 -2.31249,-2.17514 c -1.27189,-1.19633 -3.1859,-2.15021 -4.25339,-2.11974 -1.06748,0.0305 -8.48385,2.42872 -16.48082,5.32947 -14.49044,5.25613 -14.54105,5.28539 -14.86299,8.59686 l -0.32304,3.32278 -2.82125,-2.70623 -2.82124,-2.70621 -14.9053,5.37111 c -14.08725,5.07633 -14.92317,5.52623 -15.23103,8.19728 -0.3082,2.67396 -0.42487,2.73635 -2.16629,1.15846 -1.72271,-1.56094 -2.50429,-1.47818 -12.20869,1.29295 -11.09331,3.16772 -46.4928,13.69953 -51.48109,15.31629 -3.53122,1.14451 -25.49699,7.73689 -30.58415,9.17896 -1.9303,0.54718 -6.15694,1.87802 -9.392525,2.95743 -3.235585,1.07941 -6.046718,1.79852 -6.246963,1.59802 -0.200245,-0.20048 -0.664081,-4.27216 -1.030745,-9.04816 -0.886595,-11.54836 1.284365,-22.61339 5.207391,-26.54121 0.690926,-0.69177 1.409328,-1.60803 1.596449,-2.03614 0.549858,-1.258 8.556323,-7.28931 9.676443,-7.28931 0.56407,0 1.17599,-0.3832 1.35983,-0.85157 0.18384,-0.46838 2.36483,-1.98655 4.84664,-3.37373 2.48182,-1.38718 15.79339,-8.97749 29.5814,-16.86735 13.78788,-7.88986 26.6482,-15.22961 28.57851,-16.31055 1.9303,-1.08095 7.5708,-4.32214 12.53443,-7.20266 4.96364,-2.88053 15.34215,-8.76449 23.06336,-13.07547 17.24023,-9.62574 26.91268,-15.18063 31.81596,-18.27189 2.05636,-1.29643 3.93078,-2.35714 4.16538,-2.35714 0.2346,0 3.29014,-1.63968 6.79009,-3.64374 3.49995,-2.00405 8.84537,-4.9975 11.8787,-6.65209 7.99688,-4.36205 9.50723,-6.00128 8.0468,-8.73345 -0.64863,-1.21345 -1.97411,-3.00203 -2.94551,-3.97462 -1.45111,-1.45288 -1.88414,-4.34983 -2.42732,-16.23866 -1.05975,-23.1953 -0.82147,-32.25432 0.90878,-34.5499 1.32029,-1.75166 2.91792,-2.05138 12.5165,-2.34816 l 11.00301,-0.34018 1.58575,3.79987 c 1.31868,3.1599 1.49261,6.68347 1.03271,20.92175 -0.30418,9.41705 -0.68562,18.46487 -0.84763,20.10627 -0.20502,2.07711 0.18662,3.08135 1.28832,3.30339 0.87059,0.17547 6.38518,-2.86171 12.25465,-6.74928 5.86947,-3.88757 10.85905,-7.06832 11.08796,-7.06832 0.22891,0 3.06225,-1.73852 6.29631,-3.86339 5.76883,-3.79027 14.16018,-9.14534 19.71602,-12.58206 l 2.80562,-1.7355 -2.30424,-3.71026 c -2.17362,-3.49994 -2.32406,-4.8831 -2.65401,-24.40085 -0.29757,-17.60317 -0.10669,-21.16121 1.27919,-23.8445 l 1.62897,-3.15391 10.75386,0.0247 10.75386,0.0247 1.58325,3.23822 c 1.20149,2.45742 1.64491,7.11155 1.839,19.3019 0.14066,8.83501 0.40055,16.20892 0.57752,16.38644 0.17698,0.17754 7.69737,-4.30344 16.71197,-9.95772 9.01461,-5.65429 21.01539,-13.17384 26.66842,-16.71013 l 10.27824,-6.42961 v -22.97159 c 0,-15.29428 0.38893,-23.82623 1.16372,-25.52879 1.14641,-2.51917 1.33099,-2.55719 12.4191,-2.55719 14.33846,0 14.07283,-0.31654 15.06475,17.95257 0.39504,7.27607 1.01097,13.41034 1.36872,13.63171 0.35774,0.22138 1.75993,-0.47842 3.11598,-1.55511 1.35603,-1.07668 10.58783,-7.27931 20.51511,-13.78363 l 18.04958,-11.82602 0.0904,-64.20546 c 0.1075,-76.32935 0.93436,-91.88972 5.9992,-112.89845 6.29976,-26.13109 14.44973,-43.56383 24.64371,-52.71281 5.31555,-4.77065 8.17768,-5.70743 12.24246,-4.00698 3.84505,1.60853 12.49641,10.77733 16.40138,17.38237 3.65397,6.18048 8.99094,20.73888 12.94853,35.3215 5.74279,21.16057 6.61757,35.88345 6.76495,113.8563 l 0.12696,67.17126 20.7914,13.82971 c 11.43527,7.60633 20.97078,13.5225 21.19001,13.14705 0.21923,-0.37546 0.72839,-6.53654 1.13146,-13.69129 1.01231,-17.96912 0.705,-17.61272 15.18705,-17.61272 11.35868,0 11.44822,0.0186 12.41911,2.57531 0.53786,1.41641 0.97793,12.89833 0.97793,25.51536 v 22.94003 l 5.26447,3.30435 c 2.89545,1.81739 7.52066,4.70589 10.27823,6.41889 2.75758,1.71301 12.32175,7.71934 21.25372,13.34743 8.93197,5.62808 16.43339,10.23287 16.66983,10.23287 0.23644,0 0.62499,-7.88706 0.86343,-17.52679 0.55284,-22.34914 0.07,-21.62839 14.48869,-21.62839 h 10.34775 l 1.62897,3.15391 c 1.38589,2.68329 1.57676,6.24133 1.27919,23.8445 -0.32123,19.00245 -0.52532,20.98797 -2.50137,24.3354 l -2.15159,3.64481 9.97196,6.39498 c 10.9035,6.99239 15.7287,10.10701 29.59966,19.10626 5.05825,3.28171 10.41426,6.18778 11.90225,6.45793 2.59522,0.47118 2.6763,0.35656 1.99022,-2.81314 -0.39336,-1.81738 -0.93532,-11.0648 -1.20434,-20.54983 -0.42323,-14.92161 -0.25605,-17.73728 1.24061,-20.89512 l 1.72976,-3.64964 10.88269,0.23314 c 15.07834,0.32302 14.34098,-1.20473 13.64717,28.27564 l -0.54108,22.99144 -2.61213,2.72979 c -4.54619,4.75099 -3.66564,6.40043 6.66336,12.48175 10.4127,6.13061 14.83711,8.64968 22.76479,12.96136 3.007,1.63543 8.6475,4.79335 12.53444,7.0176 3.88694,2.22424 9.09773,5.17904 11.57955,6.56623 14.27268,7.97755 28.2701,15.93458 33.0909,18.81099 3.03334,1.80988 13.63747,7.92372 23.56474,13.5863 9.92727,5.66257 24.81818,14.15638 33.0909,18.87513 17.41374,9.93277 24.3932,14.8213 28.09117,19.67551 3.98022,5.22471 5.79604,14.31392 5.10862,25.57159 -0.31694,5.19041 -0.72974,9.59079 -0.91734,9.77862 -0.3164,0.31678 -20.46398,-5.56935 -30.77831,-8.99191 -2.48182,-0.82353 -20.88574,-6.3401 -40.8976,-12.25903 -34.60992,-10.23662 -36.47766,-10.67792 -38.28032,-9.04454 -1.81308,1.64282 -1.90922,1.59481 -2.22086,-1.10901 -0.30785,-2.67105 -1.14378,-3.12095 -15.23103,-8.19728 l -14.9053,-5.37111 -2.82124,2.70621 -2.82125,2.70623 -0.32303,-3.31165 c -0.32016,-3.28204 -0.44175,-3.35448 -13.60033,-8.10303 -18.04846,-6.51317 -19.50385,-6.73702 -22.12342,-3.40271 l -2.08826,2.65803 -0.65129,-3.47588 c -0.59663,-3.18421 -1.1694,-3.65996 -6.82576,-5.66957 -3.39597,-1.20652 -9.65703,-3.51077 -13.91348,-5.12056 -9.22875,-3.49031 -10.90656,-3.59082 -13.41412,-0.80362 l -1.91024,2.12326 -0.50138,-3.35895 -0.50137,-3.35894 -12.03306,-3.26005 c -6.61818,-1.79302 -14.13449,-3.54855 -16.70291,-3.90117 -4.38353,-0.60181 -4.76031,-0.46826 -6.14531,2.17831 l -1.47545,2.81945 -0.71617,-3.26468 c -0.45334,-2.06656 -1.54994,-3.58206 -2.98806,-4.1295 -3.98515,-1.517 -41.65062,-11.06251 -43.65138,-11.06251 -1.05795,0 -2.33779,0.74112 -2.84408,1.64693 -1.11169,1.98891 -3.19013,0.95762 -3.19013,-1.58291 0,-1.45294 -1.73188,-2.26033 -8.48713,-3.95666 -4.66792,-1.17218 -10.33019,-2.13123 -12.58284,-2.13123 -3.67085,0 -4.23805,0.33848 -5.46779,3.26293 l -1.37208,3.26293 -0.69373,-2.76094 c -0.39673,-1.57893 -1.39846,-2.77842 -2.33985,-2.80178 -0.90535,-0.0225 -10.89652,-0.025 -22.20258,-0.006 -17.25527,0.0296 -20.738,0.28175 -21.68686,1.57019 -0.97986,1.33055 -1.20305,1.25669 -1.67614,-0.55463 -0.47321,-1.81178 -1.18947,-2.04846 -5.38753,-1.78036 l -4.84175,0.30922 -0.16407,63.50087 c -0.16257,62.92219 -1.4545,113.37949 -3.37396,131.77309 -2.22088,21.282 -3.98647,40.8617 -3.98461,44.1878 10e-4,2.6679 0.66115,4.0125 2.70896,5.5219 1.48885,1.0974 5.88844,4.4831 9.77686,7.5237 3.88843,3.0407 11.80789,9.1174 17.5988,13.5039 9.89366,7.4942 18.30144,13.9876 24.06611,18.5864 6.18227,4.9319 8.21792,6.5166 19.66002,15.3045 24.17723,18.5689 41.05649,31.7093 43.4415,33.8189 1.33918,1.1846 2.7817,1.8051 3.20562,1.3789 0.4239,-0.4262 1.09002,-5.067 1.48024,-10.3128 0.76419,-10.2728 2.35871,-13.9696 6.04883,-14.024 2.27773,-0.034 2.29519,0 5.30903,11.1053 1.67324,6.1638 1.70456,8.0967 0.45542,28.1114 -0.73773,11.8208 -1.82115,31.4318 -2.40757,43.5799 -0.73874,15.3034 -1.55377,23.4316 -2.65352,26.4632 -1.99911,5.5109 -2.91663,4.1988 -3.82102,-5.4641 -0.80918,-8.6457 -2.58879,-11.0853 -4.93081,-6.7595 l -1.53114,2.828 -0.0417,-3.0119 c -0.0229,-1.6566 -0.83067,-4.5286 -1.79496,-6.3826 -1.55788,-2.995 -3.82063,-4.2915 -20.30423,-11.6341 -10.20303,-4.5449 -21.48402,-9.6227 -25.06887,-11.284 -3.58485,-1.6614 -12.38402,-5.6003 -19.55372,-8.7532 -7.16969,-3.1528 -13.88846,-6.202 -14.9306,-6.7758 -7.57337,-4.1702 -52.56418,-23.9429 -54.47972,-23.9429 -0.8841,0 -1.28388,1.6804 -1.28388,5.3964 0,8.9525 -0.908,11.5824 -4.90428,14.2049 -3.44475,2.2605 -6.49222,2.5697 -15.74691,1.5977 -0.60361,-0.063 -2.35246,-1.1951 -3.88632,-2.5146 -2.47394,-2.1284 -2.83982,-3.2337 -3.24043,-9.7888 -0.24837,-4.0643 -0.6231,-7.9396 -0.83273,-8.6117 -0.44459,-1.4257 -2.58622,-0.6284 -18.38927,6.8456 -5.71966,2.7051 -10.53901,4.9183 -10.70965,4.9183 -0.17065,0 -3.162,1.306 -6.64744,2.9022 -3.48545,1.5962 -9.04462,4.128 -12.35371,5.6261 -18.21616,8.247 -36.88661,16.7209 -42.61707,19.3426 -10.52379,4.8144 -16.81304,7.6423 -29.58127,13.3009 -6.61818,2.933 -12.79799,6.1835 -13.73291,7.2232 -0.93492,1.0398 -2.01234,3.9769 -2.39427,6.5269 l -0.69441,4.6362 -1.43321,-2.7387 c -2.17267,-4.1518 -4.04351,-1.7158 -4.79439,6.2424 -0.34844,3.6932 -0.98393,7.6024 -1.4122,8.6872 -0.65561,1.6606 -1.03385,1.2641 -2.39369,-2.51 z"
style="fill:#17c52b;fill-opacity:0.54901961" />
<rect
y="1389.7787"
x="88"
height="30"
width="884"
id="rect1890"
style="opacity:1;fill:#80df8b;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
id="path1892"
d="M 88.048882,962.35877 V 1419.4269"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path1894"
d="M 971.88908,962.40007 V 1419.8101"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="355.54959"
y="1410.3871"
id="text3894"><tspan
id="tspan3896"
x="355.54959"
y="1410.3871"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">Antonov An-225 Mriya </tspan></text>
<text
id="text1899"
y="1410.3871"
x="609.02344"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="1410.3871"
x="609.02344"
id="tspan1901">88.4 m</tspan></text>
<path
id="path6570"
d="m 839.76233,40.676786 c -1.14959,0.0091 -2.4787,0.0477 -4.06152,0.1563 -13.29634,0.912 -10.76051,-1.1282 -59.76675,49.056404 -14.11483,14.4541 -25.1814,26.5626 -25.1814,27.5766 0,1.6218 -3.17083,2.2198 -30.74254,5.6591 l -30.74254,3.8144 -55.48655,-1.2193 c -30.5176,-0.6723 -66.50887,-1.9103 -79.9806,-2.7514 -18.08867,-1.1298 -51.18988,-1.6711 -126.5943,-2.0324 -103.66819,-0.4967 -115.67269,-0.1996 -140.84084,3.283 -8.65699,1.1978 -29.36499,1.69 -97.35139,2.3762 -47.50124,0.4792 -87.43869,1.1455 -88.72848,1.4695 -1.28979,0.324 -5.8202,3.2561 -10.0913,6.5033 -5.913819,4.4962 -9.567409,6.4279 -15.277549,8.098 -13.071867,3.8224 -31.486157,13.0523 -42.489688,21.3234 -8.605214,6.468 -9.40277,9.9307 -4.092758,17.8216 5.601521,8.3241 14.235709,12.2647 26.587299,12.1312 4.95129,-0.0535 11.912787,0.8993 20.495027,2.8452 37.297439,8.4568 77.064359,11.0359 176.457209,11.4433 51.48552,0.2111 68.47618,0.609 79.48072,1.8448 7.22942,0.8115 17.41797,1.5101 23.52554,1.5945 0.39599,0.006 0.82802,-4e-4 1.18722,0 h 10.74739 v 0.0313 h 1.12473 c -1.59568,1.0789 -2.6556,2.8998 -2.65561,4.9712 0,2.0874 1.07046,3.9269 2.68685,5.0026 h 6.62339 c 1.61639,-1.0757 2.68685,-2.9152 2.68685,-5.0026 0,-2.0714 -1.05992,-3.8923 -2.6556,-4.9712 h 0.21869 l -0.0312,-0.0313 h 4.49891 c 1.15047,0 2.02009,0.0161 2.68685,0.0625 h 0.15621 2.71809 c -1.56391,1.0837 -2.59313,2.8932 -2.59312,4.94 0,2.0874 1.07046,3.9269 2.68685,5.0026 h 6.62339 c 1.61639,-1.0757 2.68686,-2.9152 2.68685,-5.0026 0,-2.0403 -1.03771,-3.8239 -2.59312,-4.9087 h 2.6556 c 0.4655,-0.0584 1.10504,-0.0938 1.99952,-0.0938 0.93902,0 1.59353,0.0272 2.062,0.0938 h 2.43691 c -1.54385,1.0863 -2.56187,2.8774 -2.56188,4.9087 0,2.0874 1.07046,3.9269 2.68685,5.0026 h 6.62339 c 1.61639,-1.0757 2.68686,-2.9152 2.68685,-5.0026 0,-2.0157 -1.00678,-3.7887 -2.53064,-4.8775 h 3.68661 c 0.58858,-0.0701 1.28296,-0.125 2.15573,-0.125 1.02038,0 1.70784,0.0208 2.18697,0.125 h 2.8743 c -1.52387,1.0888 -2.53065,2.8618 -2.53064,4.8775 0,2.097 1.08924,3.9291 2.71809,5.0026 h 6.56091 c 1.62885,-1.0735 2.71808,-2.9056 2.71809,-5.0026 0,-2.0002 -0.99544,-3.7552 -2.49939,-4.8461 h 10.27876 c -1.49249,1.0921 -2.46814,2.8549 -2.46815,4.8461 0,2.097 1.08924,3.9291 2.71809,5.0026 h 6.56091 c 1.62884,-1.0735 2.71809,-2.9056 2.71809,-5.0026 0,-1.9756 -0.96422,-3.7209 -2.43691,-4.8149 l 9.52894,0.0313 c -1.45296,1.0957 -2.40568,2.8235 -2.40567,4.7836 0,2.097 1.08924,3.9291 2.71809,5.0026 h 6.59215 c 1.63666,-1.0738 2.7181,-2.9067 2.71809,-5.0026 0,-1.9601 -0.94378,-3.6879 -2.40566,-4.7836 l 9.90384,0.0312 c -1.4333,1.0972 -2.37442,2.8079 -2.37442,4.7524 0,2.0874 1.07046,3.9269 2.68685,5.0026 h 6.62339 c 1.6164,-1.0757 2.68686,-2.9152 2.68685,-5.0026 0,-1.9355 -0.92118,-3.6544 -2.34318,-4.7524 l 11.62218,0.0313 38.9593,-4.6587 c 53.46467,-6.3998 91.70331,-12.5319 111.78539,-17.9153 7.14827,-1.9164 25.59379,-6.7316 40.99006,-10.693 27.13508,-6.982 34.63147,-9.3417 74.98181,-23.6059 10.44747,-3.6933 20.34507,-6.7362 21.99467,-6.7534 1.6496,-0.0172 6.82334,1.7357 11.49721,3.8769 7.20559,3.3013 9.75946,3.9314 16.74594,4.2522 10.46325,0.4806 26.00032,-2.8117 30.08645,-6.3782 0.18861,-0.1646 1.32317,-6.7214 2.53064,-14.57 l 2.18697,-14.2573 11.74715,-1.6884 c 16.90231,-2.4173 17.15514,-3.2366 1.43715,-5.065 -6.1823,-0.7192 -10.7488,-1.697 -10.74739,-2.3137 10e-4,-0.5888 2.48625,-15.4462 5.52991,-33.0169 3.04368,-17.5708 5.31922,-32.544104 5.03003,-33.298304 -0.2892,-0.7543 -2.66443,-2.3266 -5.24873,-3.4705 -2.91965,-1.2925 -4.83047,-1.7472 -8.27924,-1.7196 z m -708.172,169.711804 c -3.3512,0 -6.09227,2.7118 -6.09227,6.0656 0,2.2256 1.21403,4.1632 2.99927,5.2214 h 6.15476 c 1.78523,-1.0582 2.99927,-2.9958 2.99927,-5.2214 0,-3.3538 -2.70983,-6.0656 -6.06103,-6.0656 z"
style="fill:#16c52b;fill-opacity:0.54901961" />
<rect
y="411.6756"
x="25"
height="30"
width="840"
id="rect8999"
style="opacity:1;fill:#80df8b;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="text9001"
y="432.284"
x="499.02344"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="432.284"
x="499.02344"
id="tspan9003">84.0 m</tspan></text>
<path
id="path9038"
d="m 865.00701,116.67309 v 324.9743"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
transform="rotate(90)"
y="-962"
x="40.675003"
height="30"
width="181"
id="rect1940"
style="fill:#80df8b;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
transform="rotate(90)"
id="text1942"
y="-940.2215"
x="51.759109"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="-940.2215"
x="51.759109"
id="tspan1944">An-225 </tspan></text>
<path
id="path2020"
d="M 961.99801,40.678786 H 834.62808"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="151.02344"
y="-940.2215"
id="text3848"
transform="rotate(90)"><tspan
id="tspan3850"
x="151.02344"
y="-940.2215"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">18.1 m</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="249.625"
y="432.284"
id="text3882"><tspan
id="tspan3884"
x="249.625"
y="432.284"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">Antonov An-225 Mriya</tspan></text>
<rect
style="fill:#ffc7ff;fill-opacity:1;stroke:none;stroke-width:0.73395908;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect8558"
width="165.5"
height="28.588919"
x="55.749512"
y="-920.00061"
transform="rotate(90)" />
</g>
<g
transform="translate(69.811958,29.982269)"
style="display:inline"
id="layer1">
<rect
y="291.6756"
x="25"
height="30"
width="727"
id="rect9005"
style="opacity:1;fill:#e49292;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
id="path1937"
d="m 528.73717,1219.1139 c -0.6356,-13.7341 -1.05013,-16.2669 -4.14907,-25.3519 -1.89361,-5.5514 -3.44292,-10.8153 -3.44292,-11.6975 0,-0.8823 -0.44442,-1.8789 -0.98761,-2.2147 -0.54319,-0.3359 -32.08383,10.7089 -70.0903,24.5439 -38.00647,13.835 -69.36198,24.8951 -69.6789,24.5781 -0.74064,-0.7409 3.48935,-26.4386 5.42558,-32.961 1.97907,-6.6667 5.29597,-11.7071 10.49669,-15.9506 4.48041,-3.6558 30.55443,-23.5272 74.0039,-56.3995 13.92927,-10.5384 27.19844,-20.9003 29.48705,-23.0264 6.20997,-5.7692 6.36819,-8.1981 2.00988,-30.8536 -5.6886,-29.5704 -6.78378,-43.894 -7.30601,-95.55319 -0.25313,-25.03894 -0.90505,-47.47717 -1.44873,-49.86274 -1.57718,-6.92047 -3.83638,-25.4292 -4.56126,-37.36873 -0.63653,-10.48415 -0.76532,-10.97547 -2.76243,-10.5378 -4.81281,1.05474 -45.14064,11.93593 -45.84046,12.36861 -0.41937,0.25927 -0.765,1.00766 -0.76807,1.66307 -0.0118,2.51428 -2.13065,8.69582 -2.9807,8.69582 -0.49054,0 -1.19561,-2.02613 -1.56683,-4.50251 -0.37122,-2.47638 -0.73636,-4.49479 -0.81142,-4.48536 -3.15036,0.3958 -17.61433,4.86153 -24.803,7.65788 l -9.66376,3.75915 -1.13855,5.78931 c -0.62621,3.18413 -1.5135,5.78932 -1.97175,5.78932 -0.97808,0 -2.03361,-3.51516 -2.05304,-6.83713 -0.008,-1.28406 -0.38406,-2.18456 -0.8368,-2.00112 -0.45272,0.18344 -8.09009,3.26015 -16.97194,6.83714 l -16.14881,6.50362 -0.55621,4.50251 c -1.14666,9.28223 -3.81569,21.10269 -4.5885,20.32125 -0.44078,-0.44572 -1.1172,-5.42546 -1.50316,-11.0661 -0.38595,-5.64064 -0.93341,-10.25571 -1.21657,-10.25571 -0.28316,0 -8.30246,2.99155 -17.82068,6.64788 l -17.30584,6.64789 -0.61772,4.60838 c -1.54321,11.51257 -3.05818,18.61618 -3.97023,18.61618 -0.5458,0 -1.38707,-4.41619 -1.86948,-9.81374 -0.58438,-6.53872 -1.25195,-9.67385 -2.00037,-9.39453 -0.61779,0.23057 -8.58906,3.26185 -17.71391,6.7362 l -16.59066,6.31699 -1.10418,9.43933 c -1.56162,13.34979 -2.68051,13.96906 -4.14586,2.29458 -0.50029,-3.98575 -1.12131,-7.4586 -1.38007,-7.71744 -0.53779,-0.53799 -5.36578,1.42271 -29.20128,11.85895 -9.35172,4.0946 -35.45652,15.46572 -58.01067,25.2692 -22.55415,9.80344 -42.47033,18.90894 -44.25816,20.23444 -2.90495,2.1537 -3.2506,2.9365 -3.2506,7.3618 0,2.7235 -0.45008,4.9519 -1.00018,4.9519 -1.45217,0 -1.24403,-5.3727 0.95308,-24.6017 2.2326,-19.53954 4.25547,-26.10874 10.07705,-32.72486 2.17917,-2.4766 13.97884,-11.88214 26.22148,-20.90121 12.24264,-9.01908 31.48605,-23.24883 42.76312,-31.62167 11.27708,-8.37285 27.95543,-20.73824 37.06299,-27.47864 l 16.55921,-12.25527 -1.10004,-4.50251 c -0.82291,-3.3682 -1.62961,-4.5796 -3.2021,-4.80852 -1.55647,-0.22657 -2.38883,-1.44529 -3.20691,-4.69543 -1.47991,-5.87943 -1.33183,-40.31726 0.20867,-48.52835 l 1.22015,-6.50363 16.24087,0.0879 c 8.93247,0.0483 16.57641,0.42241 16.98651,0.83128 1.15084,1.14736 1.47958,35.34479 0.40475,42.10481 -0.52499,3.30183 -0.81972,6.14677 -0.65497,6.32207 0.16474,0.17531 7.20745,-4.81943 15.65046,-11.09942 30.36933,-22.58901 63.38549,-46.9144 64.68256,-47.65633 2.1231,-1.21442 0.0879,-7.52229 -2.55173,-7.90894 -1.77177,-0.25951 -2.32466,-1.46508 -3.44152,-7.50417 -1.76152,-9.52478 -1.73124,-40.40781 0.0465,-47.46741 l 1.32281,-5.25292 15.65314,0.0153 c 8.60922,0.008 16.32826,0.44318 17.15341,0.96612 1.2575,0.79695 1.50028,4.42776 1.50028,22.4368 0,21.41534 0.007,21.48011 2.00037,19.69686 1.1002,-0.98403 19.62042,-16.47488 41.15603,-34.42412 32.08582,-26.74251 39.98666,-33.82419 43.75805,-39.22123 l 4.60239,-6.58623 0.0281,-18.21223 c 0.0829,-53.74015 3.92887,-97.86462 11.02807,-126.52288 3.81375,-15.39542 6.97298,-23.90116 12.11619,-32.62088 3.30438,-5.6022 4.84865,-7.21276 8.43937,-8.80169 4.3525,-1.92604 4.43733,-1.92604 8.78983,0 3.59072,1.58893 5.13499,3.19949 8.43937,8.80169 15.13543,25.66036 23.02206,79.89017 23.14425,159.14376 l 0.0281,18.21223 4.60239,6.58623 c 3.77139,5.39704 11.67223,12.47872 43.75805,39.22123 21.53561,17.94924 40.05583,33.44009 41.15603,34.42412 1.99379,1.78325 2.00037,1.71848 2.00037,-19.69686 0,-18.00904 0.24278,-21.63985 1.50027,-22.4368 0.82516,-0.52294 8.5442,-0.9577 17.15342,-0.96612 l 15.65314,-0.0153 1.3228,5.25292 c 1.77777,7.0596 1.80805,37.94263 0.0465,47.46741 -1.11686,6.03909 -1.66975,7.24466 -3.44152,7.50417 -2.63966,0.38665 -4.67483,6.69452 -2.55173,7.90894 1.29707,0.74193 34.31323,25.06732 64.68256,47.65633 8.443,6.27999 15.48572,11.27473 15.65046,11.09942 0.16475,-0.1753 -0.12998,-3.02024 -0.65497,-6.32207 -1.07483,-6.76002 -0.74609,-40.95745 0.40474,-42.10481 0.41011,-0.40887 8.05405,-0.78295 16.98652,-0.83128 l 16.24087,-0.0879 1.22015,6.50363 c 1.5405,8.21109 1.68858,42.64892 0.20867,48.52835 -0.81808,3.25014 -1.65044,4.46886 -3.20691,4.69543 -1.57249,0.22892 -2.37919,1.44032 -3.2021,4.80852 l -1.10004,4.50251 16.55921,12.25527 c 9.10756,6.7404 25.78591,19.10579 37.06299,27.47864 11.27707,8.37284 30.52047,22.60259 42.76311,31.62167 12.24265,9.01907 24.04232,18.42461 26.22149,20.90121 5.82158,6.61612 7.84444,13.18532 10.07704,32.72486 2.19712,19.229 2.40526,24.6017 0.95308,24.6017 -0.5501,0 -1.00019,-2.2284 -1.00019,-4.9519 0,-4.4253 -0.34563,-5.2081 -3.25059,-7.3618 -1.78783,-1.3255 -21.704,-10.431 -44.25815,-20.23444 -22.55415,-9.80348 -48.65895,-21.1746 -58.01067,-25.2692 -23.8355,-10.43624 -28.66349,-12.39694 -29.20128,-11.85895 -0.25876,0.25884 -0.87979,3.73169 -1.38007,7.71744 -1.46535,11.67448 -2.58424,11.05521 -4.14586,-2.29458 l -1.10418,-9.43933 -16.59066,-6.31699 c -9.12486,-3.47435 -17.09612,-6.50563 -17.71392,-6.7362 -0.74841,-0.27932 -1.41598,2.85581 -2.00036,9.39453 -0.48241,5.39755 -1.32368,9.81374 -1.86948,9.81374 -0.91206,0 -2.42702,-7.10361 -3.97023,-18.61618 l -0.61772,-4.60838 -17.30585,-6.64789 c -9.51821,-3.65633 -17.53751,-6.64788 -17.82067,-6.64788 -0.28316,0 -0.83062,4.61507 -1.21657,10.25571 -0.38596,5.64064 -1.06238,10.62038 -1.50317,11.0661 -0.7728,0.78144 -3.44183,-11.03902 -4.58849,-20.32125 l -0.55621,-4.50251 -16.14881,-6.50362 c -8.88185,-3.57699 -16.51922,-6.6537 -16.97195,-6.83714 -0.45273,-0.18344 -0.82928,0.71706 -0.83679,2.00112 -0.0194,3.32197 -1.07496,6.83713 -2.05304,6.83713 -0.45825,0 -1.34555,-2.60519 -1.97175,-5.78932 l -1.13855,-5.78931 -9.66376,-3.75915 c -7.18867,-2.79635 -21.65264,-7.26208 -24.803,-7.65788 -0.0751,-0.009 -0.4402,2.00898 -0.81142,4.48536 -0.37122,2.47638 -1.07629,4.50251 -1.56683,4.50251 -0.85006,0 -2.96894,-6.18154 -2.9807,-8.69582 -0.003,-0.65541 -0.3487,-1.4038 -0.76807,-1.66307 -0.69982,-0.43268 -41.02765,-11.31387 -45.84046,-12.36861 -1.99711,-0.43767 -2.1259,0.0536 -2.76243,10.5378 -0.72489,11.93953 -2.98408,30.44826 -4.56126,37.36873 -0.54368,2.38557 -1.1956,24.8238 -1.44873,49.86274 -0.52223,51.65919 -1.61742,65.98279 -7.30601,95.55319 -4.35831,22.6555 -4.20009,25.0844 2.00988,30.8536 2.28861,2.1261 15.55778,12.488 29.48705,23.0264 43.44947,32.8723 69.52349,52.7437 74.0039,56.3995 5.20072,4.2435 8.51762,9.2839 10.49669,15.9506 1.93623,6.5224 6.16622,32.2201 5.42558,32.961 -0.31692,0.317 -31.67243,-10.7431 -69.6789,-24.5781 -38.00647,-13.835 -69.54711,-24.8798 -70.0903,-24.5439 -0.54319,0.3358 -0.98761,1.3324 -0.98761,2.2147 0,0.8822 -1.54931,6.1461 -3.44292,11.6975 -3.09894,9.085 -3.51347,11.6178 -4.14907,25.3519 -0.38838,8.3921 -1.02272,15.2585 -1.40967,15.2585 -0.38694,0 -1.02128,-6.8664 -1.40966,-15.2585 z"
style="fill:#c51717;fill-opacity:0.47058824" />
<path
id="path1933"
d=""
style="fill:#000000" />
<rect
y="1349.7786"
x="131"
height="30"
width="798"
id="rect1903"
style="opacity:1;fill:#e49292;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="410.55478"
y="1371.3322"
id="text3890"><tspan
id="tspan3892"
x="410.55478"
y="1371.3322"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">Airbus A380-800</tspan></text>
<text
id="text1909"
y="1371.3322"
x="609.02344"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="1371.3322"
x="609.02344"
id="tspan1911">79.8 m</tspan></text>
<path
id="path1913"
d="m 131.10728,1020.8704 v 358.7373"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path1916"
d="m 929.0154,1020.865 v 358.7373"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text1920"
y="1339.5248"
x="430"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="1339.5248"
x="430"
id="tspan1922">Airbus A380-800 - 79.6 m</tspan></text>
<path
id="path1968"
d="m 751.9375,-19.824414 -20.2285,0.5313 c -29.50527,0.7688 -25.39534,-1.4651 -56.32856,30.5977 -14.08313,14.5974 -91.96389,95.115804 -93.92244,96.481304 -8.06446,5.622 -0.9619,5.4381 -223.01132,5.4382 -174.92066,0 -206.16137,0.2326 -219.30795,1.5315 -45.278464,4.473 -67.972301,12.3478 -88.507431,30.754 -3.576681,3.2058 -9.031879,7.5823 -12.137096,9.7199 -10.525934,7.2466 -15.410786,15.5841 -12.915115,22.0967 3.15034,8.2207 20.589417,14.6733 47.925961,17.721 24.708712,2.7547 36.078371,3.1918 102.107201,4.0005 38.89814,0.4766 71.68795,1.5747 72.97817,1.5627 2.48535,-0.0228 2.01653,0.1365 2.2407,4.0319 0.17157,2.9815 0.33526,3.4049 3.23655,3.8755 1.78055,0.2885 4.35656,0.72 5.72622,0.9688 5.76624,1.0465 36.50448,-0.3879 42.82216,-2.0003 5.358,-1.3676 15.20942,-1.7976 57.01322,-2.469 29.26087,-0.4702 58.37321,-1.4766 69.21255,-2.3753 24.85885,-2.0609 30.37731,-2.4205 52.12727,-3.5318 14.60863,-0.7464 22.76765,-1.7905 38.86982,-4.9068 11.20284,-2.1681 27.29704,-5.1419 35.78886,-6.6259 20.29682,-3.5475 80.69876,-16.4065 100.67565,-21.4402 8.68221,-2.1879 22.8686,-6.0529 31.52532,-8.595 8.65672,-2.542 21.34714,-6.0677 28.19541,-7.8135 l 12.4483,-3.1566 0.28008,-4.063 0.31121,-4.063 8.65157,-2.2503 c 4.76598,-1.2465 9.13069,-2.5428 9.67856,-2.8754 0.54786,-0.3331 -5.94819,-1.1232 -14.44003,-1.7502 -15.29376,-1.1297 -47.09342,-4.3474 -47.58364,-4.8132 -0.31259,-0.2972 56.19623,-123.140104 59.16055,-129.579304 2.96437,-6.4392 5.82587,-12.8856 6.37976,-14.3457 z M 353.34288,208.20519 c -3.70629,0 -6.7221,3.0286 -6.72209,6.7509 0,2.7173 1.61126,5.0339 3.92122,6.0945 h 5.60174 c 2.30101,-1.0606 3.89007,-3.3775 3.89008,-6.0945 0,-3.7222 -2.98466,-6.7511 -6.69095,-6.7509 z m 15.68486,0 c -3.7063,0 -6.72209,3.0286 -6.72209,6.7509 0,2.7173 1.61125,5.0339 3.92122,6.0945 h 5.60173 c 0.324,-0.1523 0.63843,-0.331 0.93363,-0.5313 0.2952,0.2003 0.60962,0.379 0.93362,0.5313 h 5.60173 c 2.30997,-1.0606 3.92122,-3.3775 3.92122,-6.0945 0,-3.7222 -3.0158,-6.7511 -6.72208,-6.7509 -1.38986,0 -2.66283,0.4291 -3.73449,1.1564 -1.07166,-0.7273 -2.34463,-1.1566 -3.73449,-1.1564 z m 24.39867,0 c -3.70629,0 -6.69096,3.0286 -6.69096,6.7509 0,2.7173 1.58908,5.0339 3.89009,6.0945 h 5.60174 c 2.30997,-1.0606 3.92121,-3.3775 3.92121,-6.0945 0,-3.7222 -3.01581,-6.7511 -6.72208,-6.7509 z m 16.92969,0 c -3.70629,0 -6.69096,3.0286 -6.69096,6.7509 0,2.7173 1.58908,5.0339 3.89009,6.0945 h 5.60174 c 2.30997,-1.0606 3.92119,-3.3775 3.92121,-6.0945 0,-3.7222 -3.01581,-6.7511 -6.72208,-6.7509 z m -334.112422,0.4376 c -3.440054,0 -6.255257,2.7959 -6.255267,6.2508 0,3.4547 2.815213,6.282 6.255267,6.282 3.440054,0 6.224156,-2.8273 6.224156,-6.282 0,-3.4549 -2.784092,-6.2509 -6.224156,-6.2508 z"
style="fill:#c51515;fill-opacity:0.47058824" />
<text
id="text9007"
y="313.22906"
x="499.02344"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="313.22906"
x="499.02344"
id="tspan9009">72.7 m</tspan></text>
<text
transform="rotate(90)"
id="text1936"
y="-970.25391"
x="1513.6178"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="-970.25391"
x="1513.6178"
id="tspan1938">Airbus A380-800 - 79.6 m</tspan></text>
<rect
transform="rotate(90)"
y="-1044"
x="-19.324394"
height="30"
width="241"
id="rect1946"
style="fill:#e49292;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
transform="rotate(90)"
id="text1948"
y="-1022.4465"
x="146.76572"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="-1022.4465"
x="146.76572"
id="tspan1950">24.1 m</tspan></text>
<path
id="path9042"
d="m 752.01939,-14.49881 v 336.187"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00130093px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path2026"
d="M 1084.0216,-20.321386 H 632.89"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="-12.324402"
y="-1022.4465"
id="text3859"
transform="rotate(90)"><tspan
id="tspan3861"
x="-12.324402"
y="-1022.4465"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">A380-800 </tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="304.55475"
y="313.22906"
id="text3874"><tspan
id="tspan3876"
x="304.55475"
y="313.22906"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">Airbus A380-800</tspan></text>
<rect
style="opacity:1;fill:#ffc7ff;fill-opacity:1;stroke:none;stroke-width:0.80164891;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect8691"
width="730"
height="30"
x="25"
y="331.6756" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="499.02344"
y="353.22906"
id="text8695"><tspan
id="tspan8693"
x="499.02344"
y="353.22906"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">73.0 m</tspan></text>
<text
id="text8699"
y="353.22906"
x="336.55475"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="353.22906"
x="336.55475"
id="tspan8697">Stratolaunch</tspan></text>
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00130093px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 755.4375,25.519848 V 361.70685"
id="path8701" />
</g>
<g
transform="translate(69.811958,29.982269)"
id="layer2">
<path
id="path2885"
d="m 529.60516,1223.2499 c -0.38955,-2.2125 -0.71321,-6.0818 -0.71927,-8.5984 -0.006,-2.5167 -0.39797,-5.0057 -0.87094,-5.5312 -0.47297,-0.5254 -1.68425,-4.2363 -2.69178,-8.2464 -1.00752,-4.01 -2.13763,-7.291 -2.51136,-7.291 -0.88848,0 -30.69734,8.0368 -69.21046,18.66 -16.93437,4.671 -31.44159,8.4928 -32.23825,8.4928 -1.18629,0 -1.4485,-2.2362 -1.4485,-12.3537 v -12.3537 l 5.24809,-5.0444 c 2.88645,-2.7744 7.49727,-7.0272 10.24627,-9.4507 2.749,-2.4234 13.76998,-12.8588 24.49107,-23.1898 10.72109,-10.331 21.96699,-21.0091 24.99089,-23.7293 10.99783,-9.8929 20.59942,-20.1131 21.92851,-23.3411 1.21089,-2.941 1.01484,-5.3611 -1.7897,-22.0931 -6.69852,-39.9635 -7.09293,-48.0712 -7.1655,-147.29691 -0.0478,-65.37984 -0.33296,-84.25047 -1.26939,-84.00463 -0.66427,0.17438 -6.03014,1.90096 -11.9242,3.83686 l -10.71645,3.51981 -1.1309,5.63722 c -1.96615,9.8006 -3.34434,10.35616 -5.26673,2.12311 l -1.1589,-4.96326 -9.97453,3.2889 c -9.53142,3.14279 -10.01018,3.43806 -10.77716,6.64674 -1.14035,4.77068 -3.89064,10.90028 -4.89082,10.90028 -0.46632,0 -0.84783,-2.489 -0.84783,-5.53112 0,-6.46379 0.0257,-6.45472 -9.72546,-3.43521 -28.55454,8.84209 -44.34581,16.0536 -45.05037,20.57345 -1.97026,12.63949 -3.5697,15.5666 -4.78538,8.75749 -0.37031,-2.07417 -0.96034,-4.31797 -1.31117,-4.98622 -0.43339,-0.82549 -5.84211,1.86622 -16.8714,8.39624 -13.33984,7.89799 -16.33168,10.08647 -16.78399,12.27725 -1.40959,6.82732 -2.76288,11.21412 -3.45949,11.21412 -1.09755,0 -1.9763,-2.71958 -1.9763,-6.11621 0,-1.61409 -0.23776,-2.93473 -0.52833,-2.93473 -1.67916,0 -16.48044,8.52566 -52.20673,30.07152 -22.10109,13.32875 -40.42354,24.23409 -40.71658,24.23409 -0.29303,0 -9.1089,5.20372 -19.59082,11.56382 -19.65322,11.92499 -27.89143,17.77489 -33.85018,24.03679 -1.8947,1.9911 -3.8065,3.6202 -4.24845,3.6202 -0.44194,0 -0.79998,-2.1496 -0.79563,-4.7769 0.0175,-10.5862 16.79057,-40.42278 30.41659,-54.10628 3.88401,-3.90039 13.13463,-12.16825 20.55692,-18.373 7.42229,-6.20477 17.07746,-14.3272 21.45591,-18.04986 4.37846,-3.72267 15.39944,-13.07899 24.49107,-20.79185 9.09164,-7.71285 17.01469,-14.50106 17.60678,-15.08489 0.59211,-0.58384 2.76861,-2.55362 4.83669,-4.37729 l 3.76013,-3.31575 -1.24249,-5.23235 c -1.48582,-6.25706 -2.85873,-8.71765 -4.50872,-8.08068 -3.30736,1.27681 -4.6746,-39.77521 -1.5751,-47.29356 l 1.18559,-2.8759 14.52558,0.38024 c 16.41176,0.42961 15.95496,0.1971 17.00546,8.65564 0.60573,4.87726 -1.17704,30.92137 -2.2362,32.66824 -1.54957,2.55575 2.45015,-0.74829 14.60893,-12.06791 12.14679,-11.30844 27.95346,-25.97384 49.02843,-45.48851 3.57371,-3.30911 5.98542,-6.02443 5.35935,-6.03406 -0.62607,-0.01 -1.45451,-1.71453 -1.84099,-3.7887 -1.1244,-6.03437 -3.46779,-11.01185 -4.4396,-9.42994 -1.31865,2.14647 -1.85525,0.23787 -3.07919,-10.95198 -1.33079,-12.16688 -1.1101,-26.67144 0.5046,-33.16279 1.04222,-4.18999 1.41036,-4.57182 5.05893,-5.24711 5.71834,-1.05838 24.29907,0.22669 25.85092,1.78789 2.04751,2.05985 2.68896,13.21512 1.5312,26.62889 -0.58868,6.82049 -1.29594,12.76813 -1.57169,13.21697 -1.75486,2.85655 2.78375,-0.80016 14.31726,-11.53525 7.26064,-6.75802 20.36592,-18.94378 29.12283,-27.07948 18.19842,-16.90741 20.92262,-20.08216 25.40838,-29.61053 l 3.24175,-6.88592 0.0996,-51.79147 c 0.11352,-59.03216 1.02142,-76.42582 5.95791,-114.14235 2.56304,-19.58272 9.30656,-46.85855 14.32955,-57.95937 3.40701,-7.52956 8.85161,-13.94528 11.83442,-13.94528 9.42288,0 18.96278,23.42235 25.60027,62.85372 5.95471,35.37519 7.60867,63.03914 7.636,127.71875 l 0.02,47.266 3.07072,6.53678 c 4.22099,8.98542 9.60203,15.8667 18.16153,23.22501 3.99069,3.43065 13.32857,11.96621 20.75087,18.96792 7.4223,7.0017 17.00841,16.03365 21.30248,20.07099 4.29408,4.03734 8.05299,7.09357 8.35313,6.79161 0.30015,-0.30196 0.0481,-4.26872 -0.56005,-8.81503 -1.49271,-11.15857 -1.39547,-26.92058 0.1855,-30.07071 1.14097,-2.2734 2.07287,-2.58847 9.73171,-3.2902 4.65846,-0.42683 11.25655,-0.50662 14.66243,-0.17732 l 6.19253,0.59873 1.17229,5.26989 c 0.77381,3.47867 0.99945,11.22989 0.66383,22.80465 -0.54556,18.81459 -1.15252,22.78509 -3.21928,21.05949 -1.34014,-1.11891 -1.96975,0.1065 -4.76462,9.27336 l -1.44906,4.75278 15.16507,14.35475 c 8.34079,7.8951 20.75854,19.40117 27.59497,25.56905 6.83646,6.16787 14.48732,13.18234 17.00195,15.58772 2.51462,2.40537 5.52486,5.21168 6.68941,6.23625 l 2.11737,1.86285 -0.69161,-6.38831 c -0.94165,-8.69813 -0.87677,-33.69383 0.09,-34.66433 0.42986,-0.43153 7.47855,-0.97599 15.66375,-1.20992 l 14.88217,-0.42533 1.07457,3.89338 c 1.16649,4.22636 1.29404,38.14357 0.16215,43.11409 -0.37786,1.65934 -1.18117,2.91831 -1.78512,2.79771 -1.74693,-0.34882 -2.99732,1.81406 -4.57653,7.91627 l -1.47142,5.68569 6.62751,5.91152 c 3.64513,3.25132 13.82487,11.99615 22.62166,19.43293 8.7968,7.43677 16.44401,14.04837 16.99381,14.69242 0.5498,0.64405 4.82325,4.23859 9.49653,7.98785 10.01035,8.03105 29.74548,24.80972 35.61793,30.28213 8.45441,7.87846 18.78434,22.94201 25.74175,37.53768 4.02897,8.45227 5.1172,11.85187 5.45321,17.03587 l 0.41979,6.4764 -6.87608,-6.0237 c -11.46382,-10.0426 -7.70604,-7.6819 -87.28215,-54.83193 -5.25863,-3.1158 -16.98343,-10.17425 -26.05513,-15.68543 -17.17431,-10.43365 -30.04369,-17.68304 -30.47341,-17.16586 -0.13771,0.16573 -0.66425,2.11152 -1.17007,4.32397 -0.50583,2.21245 -1.3358,4.02264 -1.84438,4.02264 -0.50858,0 -1.63744,-2.82708 -2.5086,-6.2824 -0.87115,-3.45531 -2.0625,-6.76385 -2.64744,-7.35231 -1.88393,-1.89529 -29.53552,-18.04356 -30.89701,-18.04356 -0.74951,0 -1.67707,1.839 -2.15574,4.27405 -0.46209,2.35073 -1.27577,4.27405 -1.80819,4.27405 -0.53241,0 -1.5701,-3.18651 -2.306,-7.08114 l -1.33799,-7.08114 -8.22183,-4.74211 c -7.51471,-4.33428 -12.78712,-6.31501 -37.33461,-14.02585 l -8.247,-2.59054 -0.11827,3.17833 c -0.0651,1.74808 -0.44364,4.53597 -0.84132,6.19531 l -0.72304,3.01697 -2.13564,-4.52546 c -1.1746,-2.48901 -2.14551,-5.72989 -2.1576,-7.20194 -0.0205,-2.49922 -0.71635,-2.91042 -10.50636,-6.20849 -5.76643,-1.9426 -10.65731,-3.22719 -10.86863,-2.85465 -0.2113,0.37255 -0.69804,2.85406 -1.08162,5.51449 -0.93719,6.50012 -2.67895,5.64001 -4.57175,-2.2576 l -1.51572,-6.32421 -11.46459,-3.84145 c -6.30552,-2.1128 -11.56068,-3.74478 -11.67812,-3.62664 -0.11743,0.11816 -0.30287,38.44055 -0.41206,85.1609 -0.22455,96.0754 -0.76058,106.078 -7.9744,148.8055 l -2.80152,16.5934 2.39429,4.1284 c 1.31686,2.2707 9.72334,11.0465 18.68106,19.5018 8.95772,8.4554 17.69862,16.7799 19.42422,18.4989 7.0682,7.0414 21.64334,20.9322 33.8611,32.2713 l 12.98323,12.0495 0.49982,12.8426 c 0.43728,11.2357 0.30262,12.8424 -1.07618,12.8406 -0.8668,0 -6.26484,-1.3242 -11.99563,-2.94 -12.70474,-3.5823 -61.01255,-16.8297 -77.1612,-21.16 -6.4689,-1.7346 -12.2043,-2.8786 -12.74536,-2.5422 -0.54106,0.3364 -0.98373,1.4153 -0.98373,2.3975 0,0.9823 -0.89723,4.5355 -1.99384,7.896 -1.09659,3.3606 -2.34735,9.8841 -2.77944,14.4967 -0.70998,7.579 -0.85384,7.9993 -1.49391,4.3641 z"
style="fill:#164ac5;fill-opacity:0.39215686" />
<rect
y="1309.7787"
x="188"
height="30"
width="684"
id="rect1918"
style="opacity:1;fill:#a4b8e8;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="text1926"
y="1332.027"
x="442.38571"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="1332.027"
x="442.38571"
id="tspan1928">Boeing 747-8 </tspan></text>
<path
id="path1936"
d="m 188.02239,1016.7184 v 322.9809"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path1938"
d="M 872.08939,1016.8732 V 1339.854"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="371.6756"
x="25"
height="30"
width="763"
id="rect9015"
style="opacity:1;fill:#a4b8e8;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
id="text9017"
y="393.92389"
x="499.15039"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="393.92389"
x="499.15039"
id="tspan9019">76.3 m</tspan></text>
<path
id="path9032"
d="m 25.082402,163.07319 v 278.6247"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path9036"
d="m 788.04588,28.43599 v 373.343"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.99975818px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
transform="rotate(90)"
y="-1002"
x="27.675003"
height="30"
width="194"
id="rect1952"
style="fill:#a4b8e8;fill-opacity:1;stroke:none;stroke-width:0.80000001;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
transform="rotate(90)"
id="text1954"
y="-979.75171"
x="151.02344"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="-979.75171"
x="151.02344"
id="tspan1956">19.4 m</tspan></text>
<path
id="path1977"
d="M 1083.8591,221.74679 H 69.89287"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path2024"
d="M 1001.9976,27.674614 H 769.9902"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="40.789062"
y="-979.75171"
id="text3855"
transform="rotate(90)"><tspan
id="tspan3857"
x="40.789062"
y="-979.75171"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">B747-8 </tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="335.96094"
y="393.92389"
id="text3878"><tspan
id="tspan3880"
x="335.96094"
y="393.92389"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">Boeing 747-8</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="609.02344"
y="1332.027"
id="text3886"><tspan
id="tspan3888"
x="609.02344"
y="1332.027"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">68.4 m</tspan></text>
<path
id="path2061"
d="m 747.71178,27.67559 -6.50112,5.75 c -3.57156,3.1625 -8.42762,7.3753 -10.81437,9.375 -2.38674,1.9996 -6.64599,5.599599 -9.47039,8 -2.82437,2.4003 -5.93523,5.049999 -6.90744,5.874999 -2.71355,2.302601 -11.72171,9.995601 -20.00346,17.093811 -28.89,24.76039 -54.22738,45.42009 -58.04129,47.3437 -9.82644,4.95599 -17.14425,6.78559 -30.50528,7.62499 -7.15124,0.44931 -52.68592,0.8458 -101.205,0.875 -75.30911,0.0452 -89.06787,-0.15699 -93.98501,-1.4375 -7.36841,-1.9189 -15.39513,-1.9325 -17.90935,-0.0312 -2.88628,2.1827 -21.1504,1.92001 -37.8503,-0.53129 -15.13391,-2.22141 -30.99243,-3.99291 -59.60405,-6.68751 -15.95038,-1.50219 -30.57734,-1.74669 -106.01834,-1.75 -105.055269,-0.004 -102.26313,-0.2569 -115.332452,10.6875 -4.830132,4.0447 -12.248886,8.5767 -23.035234,14.0313 -22.599608,11.4285 -29.090818,18.0866 -23.785364,24.4375 4.561763,5.4603 20.144706,13.3241 34.630989,17.46871 13.85692,3.96449 17.187998,4.73279 29.505101,6.74999 29.93335,4.9024 36.78407,5.2497 118.5205,6.125 42.90743,0.4595 79.92633,1.1401 82.26423,1.5313 l 4.25074,0.7187 v 4.8125 4.8125 l 4.75082,0.625 c 2.61295,0.34361 5.42594,0.7612 6.25108,0.9375 2.9029,0.62 8.62211,0.5034 20.72234,-0.4375 15.16944,-1.1796 17.48792,-1.6236 17.47177,-4.25 -0.0139,-2.1916 7.15779,-3.6094 9.50164,-4.2187 2.21142,-0.575 21.60279,-1.1388 45.82043,-1.5938 24.75428,-0.4651 46.13298,-1.1213 47.50821,-1.4687 1.37524,-0.3474 22.07882,-0.9946 46.00796,-1.4375 62.27097,-1.1529 60.76778,-0.9377 181.5314,-27.5313 11.0019,-2.42279 28.55493,-6.1919 39.00675,-8.4062 47.22348,-10.006 44.33178,-9.26499 48.47713,-12.8125 2.7693,-2.3701 4.03405,-4.363 4.50078,-7.125 0.5967,-3.5313 1.10994,-4.0447 6.34485,-6.25 l 5.68848,-2.375 -6.50112,-1.0313 c -3.57562,-0.5638 -8.0764,-2.0221 -10.00173,-3.24999 -2.47754,-1.5801 -5.0352,-2.24731 -8.75152,-2.25001 -3.53306,-0.002 -5.25231,-0.4089 -5.25091,-1.25 0.002,-1.1566 6.02588,-16.1676 29.88017,-74.656201 C 783.90123,39.44159 788,28.97899 788,28.51939 c 0,-0.46 -9.05005,-0.8438 -20.12848,-0.8438 z m -370.15777,181.7813 c -3.44894,0 -6.25109,2.8016 -6.25108,6.25 0,2.8017 1.86338,5.1766 4.40701,5.9687 h 3.68814 c 2.54362,-0.7921 4.407,-3.167 4.40701,-5.9687 0,-3.4484 -2.80214,-6.2502 -6.25108,-6.25 z m 14.22121,0 c -3.44894,0 -6.21983,2.8016 -6.21983,6.25 0,2.8017 1.83987,5.1766 4.37576,5.9687 h 3.68814 c 2.54363,-0.7921 4.40701,-3.167 4.40701,-5.9687 0,-3.4484 -2.80213,-6.2502 -6.25108,-6.25 z m 16.65913,0 c -3.44895,0 -6.21982,2.8016 -6.21983,6.25 0,2.8017 1.83987,5.1766 4.37576,5.9687 h 3.68814 c 2.54363,-0.7921 4.40702,-3.167 4.40701,-5.9687 0,-3.4484 -2.80214,-6.2502 -6.25108,-6.25 z m 14.25247,0 c -3.44894,0 -6.25108,2.8016 -6.25109,6.25 0,2.8017 1.86339,5.1766 4.40702,5.9687 h 3.68813 c 2.53588,-0.7921 4.37577,-3.167 4.37576,-5.9687 0,-3.4484 -2.77091,-6.2502 -6.21982,-6.25 z m -319.89909,0.4062 c -3.22879,0 -5.84476,2.6156 -5.84476,5.8438 0,3.2282 2.61597,5.8437 5.84476,5.8437 3.2288,0 5.84477,-2.6155 5.84477,-5.8437 0,-3.2283 -2.61597,-5.8437 -5.84477,-5.8438 z"
style="fill:#154dc7;fill-opacity:0.39215686" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.00277126px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 920.0006,55.749512 -199.00735,0.002"
id="path8677" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="153.02344"
y="-897.75171"
id="text8681"
transform="rotate(90)"><tspan
id="tspan8679"
x="153.02344"
y="-897.75171"
style="font-weight:bold;font-size:20px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1">16.5 m</tspan></text>
<text
transform="rotate(90)"
id="text8685"
y="-899.75171"
x="60.789062"
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Bitstream Vera Sans';fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
id="tspan8687"
style="font-weight:bold;font-size:13.33333302px;line-height:1.25;font-family:Arial;fill:#ffffff;fill-opacity:1"
y="-899.75171"
x="60.789062">Stratolaunch </tspan></text>
</g>
<g
id="g9766"
transform="matrix(-3.9914629,0,0,3.9914629,-541.13776,-284.00003)">
<path
id="path8391-7"
d="m -217.74169,127.59838 c 4.71842,0.0986 8.68151,0.0845 12.94762,0.17401 3.45316,-0.0952 18.85601,-0.22118 24.20875,-0.19805 2.16852,0.009 5.41765,0.0227 7.22027,0.0296 1.80262,0.007 5.01849,0.0194 7.14638,0.0279 2.12789,0.008 4.12983,0.01 4.44875,0.003 1.65617,-0.0344 2.51596,-0.49369 2.42685,-1.29628 -0.0874,-0.7876 -1.03867,-1.03808 -2.65491,-2.62488 -1.62014,-1.59063 -4.25369,-3.36753 -5.78371,-3.85327 -0.14323,-0.0455 -1.3006,-0.2469 -2.57193,-0.44761 -6.00295,-0.94773 -11,-1.80501 -23.3872,-4.01226 -14.46938,-2.57826 -17.67345,-3.52529 -24.83964,-4.57717 -3.96633,-0.5822 -4.31555,-0.62085 -6.70396,-0.74188 -1.10563,-0.056 -9.77135,0.36647 -11.08852,0.44261 -4.45012,1.04632 -6.09924,0.78272 -13.89194,1.82141 -8.28418,1.11254 -15.37971,0.76651 -23.34684,1.23063 -8.21935,0.33323 -12.21509,0.22822 -18.92018,0.55099 -4.18683,-0.39411 -8.77709,-1.42351 -12.60438,-2.00214 -1.69294,-0.44356 -4.43473,-1.18369 -8.52255,-2.31013 -3.31756,-0.91419 -3.27513,-1.32379 -4.82972,-1.7426 -1.80428,-2.00488 -1.0381,-1.18105 -3.0503,-3.69684 -4.70999,-5.791996 -4.3245,-5.132553 -7.79846,-9.413092 -0.77954,-0.932657 -2.22698,-2.235714 -4.93498,-2.308639 -1.48482,-0.03999 -6.01577,0.03471 -7.32939,0.01499 -0.9303,-0.01397 -0.57084,0.587795 -0.4875,1.024989 2.44304,8.630902 5.37396,12.840982 7.79086,20.899012 1.70542,3.53762 2.03339,7.69404 3.01265,8.11226 1.79275,0.76565 -0.92816,0.21158 9.38348,0.7848 2.58546,0.0846 4.41625,-1.34171 7.71322,-1.32392 7.59321,0.041 23.35906,0.0531 32.61141,0.8858 5.30775,0.47769 10.30449,1.01675 23.23285,2.52491 7.46608,0.87096 10.65596,1.41575 11.82753,1.4801 3.94674,0.21677 7.21389,0.57927 12.84216,0.52013 2.00687,-0.0211 4.82032,0.0784 5.2137,0.07 3.74511,0.10628 8.51097,-0.0413 10.71963,-0.0487 z"
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-width:0.04458004;stroke-opacity:1" />
<ellipse
transform="matrix(-0.99999968,8.0528806e-4,-0.01924872,0.99981473,0,0)"
ry="1.5015143"
rx="1.4984841"
cy="132.56223"
cx="191.35925"
id="circle8393-5"
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-width:0.09995991;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<g
id="g8411-3"
transform="matrix(-0.25600631,-0.01045773,-0.01686445,0.21941135,-120.21585,67.441898)"
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-opacity:1">
<g
id="g9688">
<ellipse
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-width:0.42108735;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="circle8407-5"
cx="362.15662"
cy="316.96558"
rx="5.8496766"
ry="6.8256259"
transform="matrix(0.99997747,-0.00671226,-0.0086486,0.9999626,0,0)" />
<ellipse
cy="317.71393"
cx="376.04694"
id="circle8409-6"
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-width:0.42108735;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
rx="5.8496766"
ry="6.8256259"
transform="matrix(0.99997747,-0.00671226,-0.0086486,0.9999626,0,0)" />
</g>
</g>
<g
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-opacity:1"
transform="matrix(-0.25592374,-0.01231401,-0.01845518,0.21928328,-128.51209,68.149558)"
id="g9696">
<g
id="g9694">
<ellipse
transform="matrix(0.99997747,-0.00671226,-0.0086486,0.9999626,0,0)"
ry="6.8256259"
rx="5.8496766"
cy="316.96558"
cx="362.15662"
id="ellipse9690"
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-width:0.42108735;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<ellipse
transform="matrix(0.99997747,-0.00671226,-0.0086486,0.9999626,0,0)"
ry="6.8256259"
rx="5.8496766"
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-width:0.42108735;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="ellipse9692"
cx="376.04694"
cy="317.71393" />
</g>
</g>
<g
id="g9704"
transform="matrix(-0.25607324,-0.00866551,-0.01532823,0.21952402,-138.25088,66.738791)"
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-opacity:1">
<g
id="g9702">
<ellipse
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-width:0.42108735;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="ellipse9698"
cx="362.15662"
cy="316.96558"
rx="5.8496766"
ry="6.8256259"
transform="matrix(0.99997747,-0.00671226,-0.0086486,0.9999626,0,0)" />
<ellipse
cy="317.71393"
cx="376.04694"
id="ellipse9700"
style="fill:#ff72ff;fill-opacity:0.39215686;stroke:none;stroke-width:0.42108735;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
rx="5.8496766"
ry="6.8256259"
transform="matrix(0.99997747,-0.00671226,-0.0086486,0.9999626,0,0)" />
</g>
</g>
</g>
</svg>
Periode 1962-1977 als duikvaartuig.
<<imageh The_electric_vehicle_Gijs_Mom.jpg 400>>
{{||$:/_ship_template}}
* <<slider "Boeienschip Goeree ca. 1946" Schepen430>>
ex HMS Jude, MMS239 (1943).<br>Dit schip was origineel vergelijkbaar met Ameland-klasse motormijnenvegers maar dan volgens Canadees ontwerp. Sinds 19 juni 1943 was het schip als boeienlegger HMS ''Jude'' in Britse dienst.<br>
De Koninklijke Marine kreeg het in bruikleen: op 22 november 1945 Als boeienschip bij de mijnendienst te IJmuiden. Op 16 april 1948 werd het schip teruggegeven aan de Britse Marine.
!! Gotha
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[WD-11|Gotha WD-11]] |{{Gotha WD-11!!soort}} | 1| M1 | {{Gotha WD-11!!per}} |
{{||$:/_plane_template}}
* <<slider "Gotha WD-11 ca. 1918" Vliegtuig182>>
* <<slider "Gotha WD-11 ca. 1918" Vliegtuig214>>
Wegens slecht weer landde op 24-9-1917 een Duits torpedovliegtuig Gotha WD-11 (1212) met een Friedrichshafen FF-33L bij Wielingen (Cadzand - Zeeuws Vlaanderen). De Gotha werd naar Veere gesleept, geïnterneerd met registratie M1, maar is nooit operationeel geweest.
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Gouden Leeuw ca. 1937" Schepen441>>
{{NI}}<br>Op 7 maart 1942 werd de Gouden Leeuw door de eigen bemanning in het Westervaarwater op de rede van Soerabaja tot zinken gebracht.
!! Gouvernementsmarine
De Gouvernementsmarine (1861-1949) vloeide voort uit de Koloniale Marine in het voormalig Nederlands-Indië. Zij bestond naast de Koninklijke Marine en had civiel-bestuurlijke taken. Wat op land de ambtenaren van het binnenlands bestuur veelal waren, waren de mannen van de Gouvernementsmarine op zee: hoofdopzieners en uitvoerders van openbare werken.
Tot het takenpakket van de Gouvernementsmarine behoorde onder meer: het uitzoeken van plaatsen waar vuurtorens, bakens en lichten in de archipel moesten komen; de zeekartering; het aangeven van de meest geschikte zeevaartroutes (dat gold later in het bijzonder ook voor tankers met grote diepgang); de bevoorrading van mensen die op eenzame posten de lichten brandende moesten houden en hun periodieke aflossing; het overzee vervoeren van ambtenaren van het binnenlands bestuur en geneeskundig personeel op werkbezoek aan verre en ontoegankelijke gebieden; de verzorging van dienstreizen van de gouverneur-generaal en diens gevolg; de dienstverlening bij nationale en internationale expedities, zeevaartkundige, maar bijvoorbeeld ook metereologische.
Verder de controle op de visgronden en het tegengaan van sluikhandel en spionageactiviteiten. Een bijzonder aspect was de bijdrage aan de infrastructuur van de kolonie - een eilandenrijk met een enorm wateroppervlak - door het leggen van telegraafkabels. De gezaghebbers en officieren van de Gouvernementsmarine, gesteund door de inlandse bemanningen, waren van alle civiele markten thuis.
<<slider "De geschiedenis van de Gouvernements Marine" "De geschiedenis van de Gouvernements Marine">>
@@.c Bij het uitbreken van de Tweede Wereldoorlog in Europa, op 1 september 1939, werd de Gouvernements Marine gemilitariseerd. Officieel kwam de gehele Dienst van Scheepvaart onder bevel van de Commandant Zeemacht (CZM) te staan. De witte schepen waren vanaf dat moment Harer Majesteitsschepen en werden in marinegrijs overgeschilderd.@@ De rangen van de officieren werden gelijkgesteld met die van de marine waardoor een gezaghebber van de Gouvernements Marine gelijk gesteld werd met een luitenant-ter-zee der eerste klasse van de Koninklijke Marine. Een eerste officier en een hoofdwerktuigkundige werden gelijk gesteld met de rang van luitenant-ter-zee der tweede klasse en een 2e en 3e officier en een 2e en 3e werktuigkundige met een luitenant-ter-zee der derde klasse. De inheemse schepelingen behielden hun civiele rangen en taken. Ook behielden alle leden van de gemilitariseerde Gouvernements Marine hun eigen civiele ambtskostuum, maar ze droegen vanaf 1 september 1939 het militarisatie kenteken in de vorm van een oranje katoenen band om de linkerbovenarm. De Gouvernements Marine betekende voor de Koninklijke Marine een enorme directe aanwinst, niet vanwege de militaire capaciteiten, maar om de plaatselijke nautische kennis en ervaring.
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Groningen 2013" Schepen180>>
''Grote Beer'' ex SS Costa Rica Victory (VC2-S-AP3)<br>
Van 1947 tot 1950 in gebruik geweest als troepentransportschip (Nederlands-Indië, Nieuw-Guinea + Molukse militairen en hun gezinnen naar Nederland).<br>
In 1951 werd het schip omgebouwd tot emigrantenschip (Canada en Australië).
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Gruno, 1930" Schepen132 >>
{{||$:/_ship_template}}
* <<slider "Ramtorenschip Guinea ca. 1891" Schepen032>>
* <<slider "Ramtorenschip Guinea ca. 1892" Schepen153>>
* <<slider "Ramtorenschip Guinea ca. 1892" Schepen154>>
De kiel gelegd als ''Matador''; tijdens de bouw hernoemd tot ''Guinea''.<br>{{Ramtorenschepen}}
<<popup "Gustave Pierre Trouvé" "GustaveTrouvé">> (2 januari 1839 - 27 juli 1902) was een Frans ingenieur, klokkenmaker en uitvinder.
!!!Levensloop
Hij studeerde aan het 'Collège de Chinon' en daarna aan de 'Ecole des Arts et Métiers'. Daarna gaat hij als horlogemaker werken in Parijs.<br>
In 1865 start hij zijn eigen onderneming om zijn creativiteit tot zijn recht te laten komen.
Naast lichtgevende sieraden is hij vooral bekend - ook door de publicaties in 'La Nature' - door een aantal uitvindingen:
* een systeem voor miltaire telegrafie (1876)
* een telefoon (1878)
* een microfoon (1878)
* een elektrische buitenboordmotor (1881)
* een <<popup "elektrische driewieler" eAuto09>> (1881)
[img[GustaveTrouvé|Images/GustaveTrouvé.jpg]]<br>
//Gustave Trouvé//
De twee laatste Higginsboten (H7 & H8) konden niet meer op tijd afgeleverd worden in Nederlands Oost-Indië en werden, samen met de torpedomotorboten [[TM28 (1942)]] en [[TM29 (1942)]] en de reddingsboot [[MRB50 (1942)]], via Miami overgevaren naar Curaçao. De boten werden ingedeeld bij de Torpedomotorbootdienst die gestationeerd was op Parera bij Willemstad.<br>In januari 1946 werden de H7 en de H8 buiten dienst gesteld en van de sterkte afgevoerd.
{{||$:/_ship_template}}
* <<slider "Torpedomotorboot H8 1942" Schepen401>>
* <<slider "Torpedomotorboot H8 ca. 1944" Schepen404>>
{{||$:/_ship_template}}
* <<slider "Rammonitor Haai ca. 1888" Schepen376>>
{{||$:/_ship_template}}
* <<slider "Mijnenjager Haarlem ca. 1998" Schepen463>>
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Hadda ca. 1970" Schepen222>>
{{||$:/_plane_template}}
* <<slider "Hansa-Brandenburg W.12 1918" Vliegtuig188>>
* <<slider "Hansa-Brandenburg W.12 1918" Vliegtuig189>>
Een Duitse Hansa-Brandenburg W.12 maakte op 22 april 1918 een noodlanding bij Rottumeroog. Het werd met de registratie W1 geïnterneerd.<br>
Het toestel bleek een goed drijvervliegtuig met goede vliegeigenschappen en heeft model gestaan voor de Van Berkel WA.
{{||$:/_plane_template}}
* <<slider "Deense Hansa-Brandenburg W.29 ca. 1921" Vliegtuig190>>
* <<slider "Japanse Hansa-Brandenburg W.29 ca. 1925" Vliegtuig191>>
In de loop van 1918 is deze Hansa-Brandenburg W.29 (2501?) geïnterneerd met registratie W2.
!! Hansa-Brandenburg
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[W.12|Hansa-Brandenburg W.12]] |{{Hansa-Brandenburg W.12!!soort}} | 1| W1 | {{Hansa-Brandenburg W.12!!per}} |
|[[W.29|Hansa-Brandenburg W.29]] |{{Hansa-Brandenburg W.29!!soort}} | 1| W2 | {{Hansa-Brandenburg W.29!!per}} |
{{||$:/_ship_template}}
* <<slider "Mijnenjager Harlingen ca. 1994" Schepen464>>
<<imageh 1916_Woods_model_44_hybride.jpg 400>>
//Woods model #44 'dual power' oftewel hybride, 1916.<br>
Dit was een volledige hybride: hij kon zowel op benzine, elektriciteit (of beide) lopen.//
<<imageh 1900_Pieper_Petroleo_electrique.jpg 400>>
//Pieper voiturette, 'Petroleo electrique', 1900.//
<<imageh 1900_Pieper_Petroleo_electrique2.jpg 400>>
//Pieper voiturette, 'Petroleo electrique', 1900.//
<<imageh 190x_Lohner-Porsche01.jpg 400>>
//Ferdinand Porsche was in zijn diensttijd de privéchauffeur van Aartshertog Franz Ferdinand van Oostenrijk (Sarajewo † 1914).<br>
Een Lohner-Porsche als dienstauto, 1902.//
<<imageh 190x_Lohner-Porsche_race.jpg 400>>
//Lohner-Porsche raceauto, 190x.//
<<imageh 190x_Mercedes-Lohner-Porsche2.jpg 400>>
//Twee Lohner-Porsches met Daimler motor, 190x.//
<<imageh 190x_Mercedes-Porsche1.jpg 400>>
//Lohner-Porsche met Daimler motor, 190x.//
<<imageh 1917_Woods_dual_power_Louwman.jpg 400>>
//Woods model #44 'dual power' oftewel hybride, 1917.<br>
Dit exemplaar is te vinden in het Louwmanmuseum te Den Haag.//
<<imageh 1916_Stuur_Woods_Dual_Power.jpg 400>>
//Het stuur van de Woods model #44 met bedieningshendels voor 'elektriek' en 'gas', 1916.//
<<imageh 1916_Dashboard_Woods_Dual_Power1.jpg 400>>
//Interieur/dashboard van Woods model #44, 1916.//
<<imageh 1916_Dashboard_Woods_Dual_Power2.jpg 400>>
//Dashboard van Woods model #44, 1916.//
<<imageh 1916_Dashboard_Woods_Dual_Power3.jpg 400>>
//Dashboard van Woods model #44, 1916.//
<<imageh 1916_Interieur_Woods_Dual_Power.jpg 400>>
//Interieur van Woods model #44, 1916.//
{{||$:/_ship_template}}
* <<slider "Kanonneerboot/mijnenlegger Havik ca. 1905" Schepen383>>
{{||$:/_ship_template}}
* <<slider "Kanonneerboten Hefring & Tyr ca. 1910" Schepen387>>
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Hefring ca. 1970" Schepen332>>
{{||$:/_ship_template}}
* <<slider "Monitor Heiligerlee ca. 1890" Schepen128>>
* <<slider "Monitor Heiligerlee ca. 1890" Schepen415>>
{{||$:/_plane_template}}
* <<slider "Heinkel He 10 1929" Vliegtuig039>>
* <<slider "Heinkel He 10 1929" Vliegtuig097>>
{{||$:/_plane_template}}
* <<slider "Heinkel He 12 1930" Vliegtuig038>>
* <<slider "Heinkel He 12 1931" Vliegtuig098>>
Slechts 1 gebouwd.<br>De Heinkel HE 12 D-1717 heeft dienst gedaan als postvliegtuig op de stoomboot Bremen om sneller post te kunnen bezorgen.<br>Werd daartoe m.b.v. een katapult vanaf het schip gelanceerd. Maakte zo 38 vluchten.<br>
Op 5-10-1931 startte de D-1717 'New York' voor de 39 ^^e^^ vlucht vanaf de stoomboot naar New York (op 2500 km voor New York),<br>maakte een tussenlanding op Newfoundland en crashte daarna op weg naar New York.
{{||$:/_plane_template}}
* <<slider "Heinkel He 59 1940" Vliegtuig048>>
* <<slider "Heinkel He 59 ca. 1941" Vliegtuig047>>
* <<slider "Heinkel He 59 ca. 1941" Vliegtuig049>>
* <<slider "Heinkel He 59 ca. 1941" Vliegtuig053>>
* <<slider "Heinkel He 59 ca. 1941" Vliegtuig050>>
!! Heinkel
|Type |rol |opmerkingen |h
|[[He 10|Heinkel He 10]]|{{Heinkel He 10!!soort}}|slechts 2 prototypes gebouwd|
|[[He 12|Heinkel He 12]]|{{Heinkel He 12!!soort}}|slechts 1 gebouwd|
|[[He 59B|Heinkel He 59B]]|{{Heinkel He 59B!!soort}}||
{{||$:/_ship_template}}
* <<slider "Torpedoboot Hekla ca. 1893" Schepen351 >>
{{||$:/_ship_template}}
* <<slider "Mijnenjager Hellevoetsluis 2009" Schepen178>>
Als communicatievaartuig gestationeerd op het MVK 'De Mok' op Texel (vandaar als Mok I).<br>
Wist in meidagen 1940 uit te wijken naar UK. Werd onder meer gebruikt voor de evacuatie van van Britse troepen te Duinkerken, waarbij het door een luchtaanval zwaar beschadigd werd en op het strand gezet.<br>
De Duitsers borgen en herstelden het schip en namen het in dienst als hulpschip en patrouillevaartuig met de respectievelijke naamseinen HS90, FO21, V1201 en VS1201. Het schip overleefde de Tweede Wereldoorlog.
Na WWII teruggevonden en in 1947 weer als communicatievaartuig RC11 in dienst gesteld. In 1948/1949 in haar oude staat teruggebracht en in dienst gesteld als opleidingsvaartuig voor adelborsten met als naamsein Y807. In 1954 werd het schip hernoemd tot Hendrik Karssen, A857. Vanaf 1963 kreeg de Hendrik Karssen naamsein Y8102. Het werd uiteindelijk in 1973 uit dienst genomen.
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Hercules ca. 1926" Schepen443>>
In 1910 als sleepboot op stapel gezet bij het Marine Etablissement te Soerabaja. In 1919 tot mijnenlegger verbouwd.
ex IJM196, Marshall Ovana (1904).<br>De trawler werd in 1940 in Engeland gevorderd en ingericht als hulpmijnenveger. Na slechts twee jaar deel te hebben genomen aan mijnenveegoperaties werd het schip uit dienst gesteld en teruggegeven aan haar rechtmatige eigenaar. Haar ouderdom en de daaropvolgende gebreken en gebrek aan reserveonderdelen waren de belangrijkste redenen voor de vervroegde afstoting.
{{||$:/_ship_template}}
* <<slider "Duikwerkschip Hercules ca. 1959" Schepen442>>
Voormalige Duitse sleepboot 'Atlas' gebouwd in 1942 voor de Duitse Luftwaffe.<br>
Na de oorlog door de Engelse regering verkocht aan de Amsterdamse rederij Walcheren (Fa Van Splunter). Na verbouwing bij de A.D.M. in dienst als 'Walcheren XII'. In 1950 verhuurd aan de Koninklijke Marine en in 1951 aangekocht door de Koninklijke Marine. Vanaf dan in dienst als [[Hercules (1951)]], verbouwd tot duikwerkschip en tot 1961 heeft het tevens gefungeerd als nettenwerkschip. In 1967 uit dienst.
{{||$:/_ship_template}}
* <<slider "Torpedobootjagers Hermelijn en Lynx 1913" Schepen444>>
{{||$:/_ship_template}}
* <<slider "Pantserschip Hertog Hendrik 1918" Schepen151>>
* <<slider "Pantserschip Hertog Hendrik 1934" Schepen033>>
{{NI}}<br>In 1939 dienst gedaan als batterijschip 'Vlierede' bij Terschelling. Eind 1939 uit dienst gesteld en opgelegd te Den Helder. In mei 1040 tot zinken gebracht.<br>
Door de Duitsers gelicht en verbouwd tot drijvend luchtdoelbatterij 'Ariadne' (1941 tot mei 1945). Teruggevonden in Wilhelmshaven.<br>
In 1947 als 'wachtschip Amsterdam' te Amsterdam; in 1951 als wachtschip te Willemsoord (Den Helder). In 1968 uit dienst gesteld.
!! Historie elektrische auto's
Wie de eerste elektrische auto gemaakt heeft is onduidelijk; er zijn meerdere claims, b.v.:
* In 1828 maakte de Hongaar <<popup "Ányos Jedlik" "Ányos Jedlik">> een elektromotor waarmee hij een voertuig voortbewogen schijnt te hebben.
* De Nederlandse professor <<popup "Sibrandus Stratingh" "Sibrandus Stratingh">> maakte in 1835 een elektrische auto op schaal. Hij baseerde zijn auto op berekeningen van Michael Faraday. Het model bestaat nog steeds.
* De Schot <<popup "Robert Anderson" "Robert_Anderson">> maakte - tussen 1832 en 1839 - een vroege koets aangedreven door elektrische energie uit batterijen.
* In 1835 bouwde de Amerikaan <<popup "Thomas Davenport" "Thomas Davenport">> een elektrische auto op schaal.
<<<
* De Fransman <<popup "Gaston Planté" "Gaston Planté">> vond de loodzwavelzuuraccu uit in 1865
* Zijn landgenoot <<popup "Camille Alphonse Faure" "Camille Alphonse Faure">> verbeterde deze accu in 1881 waardoor deze op grote schaal gebruikt kon worden.
<<<
* In hetzelfde jaar 1881 bouwde <<popup "Gustave Trouvé" "Gustave Trouvé">> (Franse klokkenmaker en uitvinder) een elektrische driewieler waarmee hij door Parijs reed (om zijn elektromotoren te testen).
* Ook in 1881 bouwde <<popup "Charles Jeantaud" "CharlesJeantaud">> (Parijse ingenieur en koetsenbouwer) met hulp van Camille Faure een elektrisch voertuig.
* In Engeland bouwden <<popup "William Ayrton & John Perry" "William Ayrton & John Perry">> een <<popup "elektrische driewieler" eAuto03>> met achter twee grote wielen en elektrische verlichting. De 3-wieler gebruikte 10 van Planté's accu's in serie wat een 1/2 pk leverde. De snelheid werd gevariëerd door de accu's aan/uit te zetten. De actie-radius was maximaal 40 km en de maximumsnelheid was 14 km/u.<br>
Dit waren de eerste echte elektrische auto's en we mogen 1881 als het geboortejaar van de elektrische auto zien.
Vooral in Frankrijk en Engeland kwam de elektrische auto nu snel in opkomst.<br>De <<popup "wereldsnelheidsrecords voor auto's" "Snelheidsrecords voor auto's">> werden de eerste jaren ook door elektrische auto's gevestigd.<br>
Daarna ging men ook in de Verenigde Staten voortvarend te werk; in 1897 reed er in New York een commerciële taxivloot.
<<slider "Aandrijving: stoom /elektrisch / benzine" "Aandrijving stoom /elektrisch / benzine">>
<<tabs "
[[Van Berkel]]
[[Van Berkel replica]]
" "
[[Van Berkel]]
" "" "
">>
{{||$:/_ship_template}}
* <<slider "Opleidingsschip Hobein ca. 1960" Schepen353>>
<!--
Doornbosch = HW15, Doornbos, RC11, Y807, A847, Y8101
als Dornbusch in dienst van de kriegsmarine tijdens WO II
De "Hobein" was de ex "Doornbos", ex "Doornbosch", ex MVP 627, ex Dornbusch.
Gevoerde naamseinen: HW 15, RQ 2, RO 2 (nog geen bevestiging gevonden; onwaarschijnlijk), P 882 en
Y 8101 (sedert -07-1964).
29-05-1973 Verkocht voor f. 18.732,- aan J. van der Veldt en Zn te Amsterdam.
De laatste naam die ik heb is "Karoline".
Als geheugensteuntje nog de naamseinen: HW 15 (07-1947), RQ 2 (06-194, P 882 (10-1950) en Y 8101 (06-1964).
Gebouwd voor de Duitse marine als Dornbusch in 1937. Deed in de oorlog ook dienst als navigatieopleidingsschip voor de Duitse luchtmacht.
In 1945 als oorlogsbuit bij de KM als Hr.Ms. Doornbosch, later Doornbos. In juli 1952 herdoopt in Hr.Ms. Hobein.
-->
Krijgsbuit<br>oefenschip voor de adelborsten.
{{||$:/_ship_template}}
* <<slider "Pantserdekschip Holland 1898" Schepen048>>
De sleepboot Holland werd in Nederlands-Indië gevorderd en op 30 september 1939 in dienst gesteld als Hulpmijnenveger 17 (HMV17). Het schip werd ook gebruikt als boeienschip. Nadat het schip zwaar beschadigd was na een Japanse luchtaanval op 24 februari 1942 werd de aangepaste sleepboot zes dagen later door de eigen bemanning tot zinken gebracht op het Marine-etablissement te Soerabaja. De Japanse bezetter heeft het schip gelicht en gerepareerd en als sleepboot in gebruik genomen. Na WWII werd het schip eind 1945 beschadigd teruggevonden te Samarinda, Borneo, en na volledig hersteld te zijn, teruggegeven aan de eigenaar.
{{||$:/_ship_template}}
* <<slider "Onderzeebootjager Holland ca. 1970" Schepen223>>
In 1978 verkocht aan Peru als ''Garcia y Garcia''.
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Holland 2012" Schepen271>>
Deze torpedobootjagers werden hier <<popup onderzeebootjagers Onderzeebootjager>> of A-jagers genoemd.<br>
ex IJM78 (1917).<br>Dit vissersvaartuig werd op 29 augustus 1939 gevorderd en ingericht als hulpmijnenveger (Hulpmijnenveger 4). Het schip kon tijdens de Duitse inval niet ontkomen en viel op 15 mei 1940 in Duitse handen. Na de oorlog werd het schip teruggevonden en door de marine gebruikt als sleepboot met het naamsein RS7 en vanaf 1950 A847.
''N.B.:''<br>
Er is enige verwarring omtrent dit schip:<br>
Als oorsprong wordt ook genoemd: sleepboot ''Pauline''.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Hollandsch Diep 1954" Schepen451>>
Oorspronkelijk Britse BYMS 50 (in US gebouwd).<br>
{{YMS46}}
{{||$:/_ship_template}}
* <<slider "Hoofdinspecteur Zeeman 1924" Schepen410>>
{{NI}} Vanaf WWI tot 1939 bij de Dienst der Bebakening en Kustverlichting vanuit Tandjong Priok bij Soerabaja.<br>
Daarna gemilitariseerd. Op 5 maart 1942 te Tjilatjap gebombardeerd; het schip kapseisde en zonk daarna.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Houtepen ca. 1972" Schepen457>>
{{||$:/_plane_template}}
* <<slider "Hughes H-4 Herculus 1947" Vliegtuig120>>
* <<slider "Hughes H-4 Herculus 1947" Vliegtuig119>>
* <<slider "Vergelijking grote vliegtuigen" "Giant_plane_comparison">>
Grootste vliegboot ooit gebouwd. De H-4 Hercules was decennia lang het vliegtuig met de grootste vleugelspanwijdte (97,51 m) dat ooit vloog, tot op 13 april 2019 de Stratolaunch, met een spanwijdte van 117,35 meter, zijn eerste vlucht maakte.<br>
Het toestel was aanvankelijk door de Amerikaanse regering in 1942 besteld voor gebruik tijdens de Tweede Wereldoorlog, maar was niet op tijd klaar. Hughes wilde het contract dat hij had nakomen. Omdat de Amerikaanse regering hem vrijwel geen metaal toewees, bouwde hij de vliegboot grotendeels van gelamineerd berkenhout. Tot Hughes' ergernis gaf de pers het toestel de bijnaam Spruce Goose, wat sparrenhouten gans betekent. <br>
Het prototype van de H-4 Hercules heeft slechts één korte testvlucht gemaakt (2-11-1947).
!! Hughes
|Type |rol |opmerkingen |h
|[[H-4 Herculus|Hughes H-4 Herculus]]|{{Hughes H-4 Herculus!!soort}} |Grootste vliegboot ooit gebouwd.<br>Slechts 1 prototype.|
* Deze wiki kan het best bekeken worden op een scherm met minimaal 1024 x 768 pixels (b x h); gebruik een tablet in 'landschapsmodus'.
* Als browsers zijn (Mozilla) Firefox, (Google) Chrome, Opera of Safari goed te gebruiken.<br>Internet Explorer start de wiki traag op en geeft nogal wat problemen (b.v. met dropdown links en buiten beeld vallende tekst/plaatjes). Edge - de browser van Windows 10 - gedraagt zich wat beter.
* Voor de laatste nieuwtjes zie [[Nieuw toegevoegd]].
De @@.BLUE Techniek wiki@@ is opgezet als informatieblokken (z.g. tiddlers) die aan elkaar gelinkt zijn. Om preciezer te zijn: opgezet als een wiki zoals Wikipedia.
<<<
De speciale wiki-variant die hier gebruikt wordt heet <<popup "TiddlyWiki" "TiddlyWiki">>
<<<
Hulp voor deze wiki is te vinden door op één van de tabs hieronder te klikken.
<<tabs "
[[Pagina-indeling]]
[[Menubalk]]
[[Navigatiebalk]]
[[Hulp algemeen]]
[[Zoekhulp]]
" """" "">>
!! Hulp algemeen
Klik op een van de tabs hieronder voor hulp omtrent specifieke onderdelen.
<<tabs "Sluitknop Navigatie [[Dropdown links, popups & mouseovers]] Scrollbar [[Vergroten van foto's]]" "Navigatie">>
!!! Losse images
* ''Layout.png'' in folder `Familie/` => nieuw te maken in folder ??? `Foto/`?
!!! Embedded images:
* [[Navigatiebalk-image]] nieuw te maken
* [[Menubalk-image]] nieuw te maken
Tijdens de mobilisatie in augustus 1939 beschikte Nederland over 16 mijnenvegers:
* 8 stalen mijnenvegers van de Jan van Amstel-klasse; 4 in Nederland en 4 in Nederlands-Indië
* 4 A-klasse mijnenvegers A, B, C, D) in Nederlands-Indië
* 4 M-klasse mijnenvegers (M1 t/m M4) in Nederland
Deze 16 schepen waren onvoldoende om de vele Nederlandse en Nederlands Oost-Indische waterwegen vrij te houden van vijandelijke mijnen. Daarom werd reeds in de tweede helft van 1939 een aanvang gemaakt met het vorderen van visserstrawlers, die omgebouwd werden tot hulpmijnenveger of boeienlegger. Toen de Duitsers Nederland binnenvielen, op 10 mei 1940, weken tientallen trawlers uit naar Groot-Brittannië. Ook hiervan werd, in overleg met de Britten, een groot aantal omgebouwd om mijnen te kunnen vegen. Dit ombouwen betekende niets meer dan dat de trawlers uitgerust werden met een z.g. Oropesa-tuig om verankerde mijnen te kunnen ruimen. Vanaf 1941 werd een aantal van de aangepaste vissersvaartuigen uitgerust met een tuig tegen akoestische mijnen.
De bemanningen van de vissersschepen werden in de meeste gevallen gemilitariseerd door het ondertekenen van de vijfjarige Verbintenis voor VRH personeel (Vrijwillige Reserve Hulpschepen). Het commando van een gevorderde trawler kwam in handen van een marineofficier. De Nederlandse hulpmijnenvegers opereerden onder Nederlandse vlag maar onder Brits bevel.
In 1942 werd begonnen de gevorderde trawlers te vervangen door houten mijnenvegers met dieselmotoren die in Groot-Brittannië gebouwd werden. Nederland kocht in totaal 19 Britse mijnenvegers. 11 Ameland-klasse motormijnenvegers van 105 voet en 8 Duiveland-klasse motormijnenvegers van 126 voet kwamen van 1942 tot 1944 onder Nederlandse vlag. Deze schepen waren niet alleen geschikt om verankerde mijnen te vegen maar konden ook worden ingezet tegen magnetische en akoestische mijnen omdat zij uitgerust konden worden met het z.g. LL-tuig en het z.g. Hammerblock-tuig.
In Nederlands Oost-Indië werden 27 schepen van de Dienst der Gewestelijke Vaartuigen en een tweetal gevorderde sleepboten omgebouwd tot hulpmijnenveger.
* 6 ABC-klasse
* 6 DEFG-klasse (4 onafgebouwd)
* 3 Smeroe-klasse (3 onafgebouwd)
* 5 Ardjoeno-klasse
De burgerbemanningen van de schepen werden voor onbepaalde tijd gemilitariseerd en aangevuld met personeel van de marine. Officieren van de Koninklijke Marine werden aangesteld als commandant of de gezaghebber van de Dienst van Scheepvaart nam het commando als militair op zich maar met behoud van zijn oorspronkelijke rang. Een aantal van de Gewestelijke Vaartuigen was nog in aanbouw bij het uitbreken van de oorlog in Europa.
Alle Nederlandse (hulp-)mijnenvegers kregen de beschikking over herkenningstekens per divisie en individuele identificatietekens (zie [[identificatie Nederlandse (hulp-)mijnenvegers|https://www.tracesofwar.nl/articles/2814/Identificatie-Nederlandse-hulp-mijnenvegers.htm?c=gw]]).
\define llinks(filter)
<$list filter="$filter$">
<tr>
<td><$link to={{!!title}}>
<$view field="title"/>
</$link>
</td>
<td>
<$view field="per"/>
</td>
<td>
<$view field="soort"/>
</td>
<td>
<$view field="class"/>
</td>
<td>
<$view field="reg"/>
</td>
</tr>
</$list>
\end
<style>
th {
text-align: left;
}
</style>
! Hulpmijnenvegers, hulpmijnenleggers e.d.
<<slider "Info omtrent hulpmijnenvegers" Hulpmijnenvegers>>
{{Actieve Nederlandse dienst}}
<table>
<tr>
<th>Naam schip </th>
<th>Dienstperiode </th>
<th>Soort schip </th>
<th>Klasse / prototype </th>
<th>Registratie</th>
</tr>
<<llinks "[tag[hmv]sort[title]]-$:/_ship_details_template -$:/temp/search">>
</table>
Ondersteuningsschip ook wel hulpschip genoemd.<br>
Hier als breed begrip van bevoorrader, transportschip tot 'Joint logistic Support Ship' (JSS) en van opnemingsvaartuigen, oceanografisch onderzoeksvaartuigen en torpedowerkschepen tot opleidingsschepen.<br>Om 'Landing Platform Docks' (LPD's) niet te vergeten.
!! Hybride auto's
<<tabs "
[[Hybrides]]
[[Foto's hybride auto's]]
[[Video_Porsche]]
" "
[[Hybrides]]
" "" "
">>
!! Hybrides
<<tabs "
[[Lohner-Porsche]]
[[Woods]]
[[Andere hybrides]]
" "
[[[[Lohner-Porsche]]]]
" "" "
">>
//Bron: Fred Dibnah's Victorian Heroes by David Hall//
[[Armstrong|https://en.wikipedia.org/wiki/Armstrong_Whitworth]]'s knowledge of hydraulics was put to good use for the control of naval guns. Up to 10-inch calibre guns could be worked by hand but for anything bigger, hydraulics was the only method. The first ship to be fitted with hydraulic machinery was the Dutch gunboat ''Hydra''. The hydraulic system utilized compressed air rather than solid, heavy weights, which couldn't be accomodated on a ship. Eventually hydraulics became the standard method for supplying power to different places in naval ships, not just for the working of guns but also for ammunition hoists and rammers.
{{||$:/_ship_template}}
* <<slider "Hydrauliek (pneumatiek)" "Hydra (1873)_info">>
* <<slider "Mijnenlegger Hydra 1912" Schepen088>>
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Hydra ca. 1975" Schepen264>>
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Hydra 2009" Schepen327>>
In 1997 is de Hydra verlengd met een 10,5 meter lange middensectie. Daarnaast werd de Hydra voorzien van een nieuwe boegschroef.
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Hydrograaf ca. 1910" Schepen253>>
Met een diepgang van slechts 1,8 meter, kon het opnemingsvaartuig uitstekend in de ondiepe wateren in Zuidwest-Nederland, de Zuiderzee en de Waddenzee opereren. Meestal deed het schip van april tot en met oktober dienst als opnemingsvaartuig. Buiten dat seizoen was het vanwege de weersinvloeden niet mogelijk om hydrografisch werk te verrichten. Ieder seizoen werd de Hydrograaf officieel in- en buiten dienst gesteld. In de wintermaanden werd het schip opgelegd in Hellevoetsluis of in Den Helder. De Hydrograaf was niet geschilderd in de grijze marine kleuren, maar had een zwarte romp en okergele opbouw. In 1921 kreeg het opnemingsvaartuig versterking van het nieuwe hydrografische schip [[Eilerts de Haan (1921)]]. De Hydrograaf werd tevens ingezet als koninklijk jacht. In het achterschip was benedendeks een speciale hut voor dit doel ingericht. Als koninklijk jacht vervoerde de Hydrograaf koninklijk gezelschap naar havenplaatsen die Koningin Wilhelmina, Prins Hendrik en Prinses Juliana wensten te bezoeken.
In mei 1940 week het schip vanuit Vlissingen uit naar Engeland. Gedurende WWII werd het gebruikt als logements- en stafschip voor de mijnenveegdienst in Holyhead en Milford, Wales. Op 25 september 1943 kwam het schip aan in Harwich voor gebruik als depotschip. Na de herovering van Zeeuws-Vlaanderen kwam Hydrograaf in oktober 1944 ter beschikking van de Commandant Zeemacht in Zeeland. Het schip deed meteen weer dienst als opnemingsvaartuig om de belangrijke toegang naar de haven van Antwerpen beter in kaart te brengen. Na de oorlog kwam het stoomschip weer in de vaart voor de Hydrografische Dienst. Als zodanig werd het op 16 oktober 1962 door de Koninklijke Marine van de sterkte afgevoerd en vervangen door het moderne opnemingsvaartuig [[Zeefakkel (1951)]]. De Hydrograaf was het laatste kolengestookte stoomschip van de Koninklijke Marine.
De Hydrograaf werd in oktober 1964 in gebruik genomen door het Zeekadetkorps te Rotterdam. Later kwam het schip in bezit van de korpsen Den Helder en Amsterdam. De Zeekadetkorpsen probeerden het schip zoveel mogelijk in de oude staat te herstellen en te onderhouden, maar door geldgebrek ging de conditie van het schip hard achteruit. Eind 1983 werd de Hydrograaf verkocht aan H. Smit, die in verschillende havens aan het IJsselmeer al verschillende botters en aken had opgeknapt. De Hydrograaf werd onder zijn leiding volledig gerestaureerd en binnenin afgetimmerd als luxe salonboot. Het oude schip werd tevens voorzien van twee Rolls-Royce dieselmotoren. Tijdens de zeilmanifestatie Sail Amsterdam 1985 maakte het schip haar eerste opwachting. Sindsdien is de Hydrograaf te huur als partyboot voor maximaal 150 feestgangers met als thuishaven Amsterdam.
De Hydrograaf kreeg landelijke bekendheid doordat de Publieke Omroep het schip vanaf datzelfde jaar inzette als pakjesboot bij de jaarlijkse, landelijke intocht van Sinterklaas. De rook die dan uit de gerestaureerde schoorsteen komt is echter afkomstig van enkele rookpotten omdat het schip zoals vermeld geen stoomboot meer is.
[[link|http://www.shipbucket.com/forums/viewtopic.php?t=751]]
!! 2000
!!! Large Surface Combatants
!!!! Tromp Class:
F 806 – De Ruyter – guided weapon frigate (GW-frigate)
!!!! Kortenaer class:
* F 823 – Philips van Almonde – standard frigate (S-frigate)
* F 824 – Bloys van Treslong – standard frigate (S-frigate)
* F 825 – Jan van Brakel – standard frigate (S-frigate)
* F 826 – Pieter Florisz – standard frigate (S-frigate)
!!!! Jacob Van Heemskerck class:
* F 812 – Jacob van Heemskerck – air defence frigate (L-frigate)
* F 813 – Witte de With – air defence frigate (L-frigate)
!!!! Karel Doorman Class:
* F 827 – Karel Doorman – Multipurpose Frigate (M-Frigate)
* F 828 – Van Speijk – Multipurpose Frigate (M-Frigate)
* F 829 – Willem van der Zaan – Multipurpose Frigate (M-Frigate)
* F 830 – Tjerk Hiddes – Multipurpose Frigate (M-Frigate)
* F 831 – Van Amstel – Multipurpose Frigate (M-Frigate)
* F 832 – Abraham van der Hulst – Multipurpose Frigate (M-Frigate)
* F 833 – Van Nes – Multipurpose Frigate (M-Frigate)
* F 834 – Van Galen – Multipurpose Frigate (M-Frigate)
!!! Replenishment, Logistics and Landing Support Ships
!!!! Rotterdam Class:
* L 800 – Rotterdam – Amphibian Transport Ship (LPD)
!!!! Poolster Class:
* A 832 – Zuiderkruis – Replenishment Vessel
!!!! Amsterdam Class:
* A 836 – Amsterdam – Replenishment Vessel
!!! Submarine Service
* A 900 – Mercuur – Torpedo Trials Vessel
!!!! Walrus clas:
* S 802 – Walrus – Diesel-Electric Submarine
* S 803 – Zeeleeuw – Diesel-Electric Submarine
* S 808 – Dolfijn – Diesel-Electric Submarine
* S 810 – Bruinvis – Diesel-Electric Submarine
!!! Mine service
!!!! Alkmaar class:
* M 853 – Haarlem – Mine Countermeasures vessel
* M 856 – Maassluis – Mine Countermeasures vessel
* M 857 – Makkum – Mine Countermeasures vessel
* M 858 – Middelburg – Mine Countermeasures vessel
* M 859 – Hellevoetsluis – Mine Countermeasures vessel
* M 860 – Schiedam – Mine Countermeasures vessel
* M 861 – Urk – Mine Countermeasures vessel
* M 862 – Zierikzee – Mine Countermeasures vessel
* M 863 – Vlaardingen – Mine Countermeasures vessel
* M 864 – Willemstad – Mine Countermeasures vessel
!!! Auxiliary, Training and Hydrographic Vessels
!!!! Cerberus Class:
* A 851 – Cerberus
* A 852 – Argus
* A 853 – Nautilus
* A 854 – Hydra
* A 902 – Van Kinsbergen – Naval Trainee Vessel
* Y8050 – Urania – Naval Trainee Vessel
!!!! Buyskes Class:
* A 904 – Buyskes – Hydrographic Survey Vessel
* A 906 – Tydeman – Hydrographic Survey Vessel
* A 801 – Pelikaan – Marines Support Ship (for Caribbean)
!!!! Y8200 Class:
* Y8200 – Harbor Communication Vessel
* Y8201 – Harbor Communication Vessel
* Y8202 – Harbor Communication Vessel
* Y8203 – Harbor Communication Vessel
* Y8005 – Nieuwediep – press and VIP vessel
* WM 1-9001 – Jonge Prins – Admiral’s Sloop
!!! Landing Craft:
* L9525 – landing craft utility (LCU)
* L9526 – landing craft utility (LCU)
* L9527 – landing craft utility (LCU)
* L9528 – landing craft utility (LCU)
* L9529 – landing craft utility (LCU)
!!! Tugboats
!!!! Linge class:
* A 874 – Linge – Coastal Tug
* A 875 – Regge – Coastal Tug
* A 876 – Hunze – Coastal Tug
* A 877 – Rotte – Coastal Tug
* A 878 – Gouwe – Coastal Tug
!!!! Breezand Class:
* Y8018 – Breezand – Harbor Tug
* Y8019 – Balgzand – Harbor Tug
!!!! Westwal Class:
* Y8059 – Westwal – Harbor Tug
* Y8058 – Zuidwal – Harbor Tug
* Y8057 – Malzwin – Harbor Tug
* Y8056 – Wierbalg – Harbor Tug
* Y8055 – Schelde – Harbor Tug
!! 1990:
!!! Large Surface Combatants
!!!! Tromp Class:
* F 801 – Tromp – guided weapon frigate (GW-frigate)
* F 806 – De Ruyter – guided weapon frigate (GW-frigate)
!!!! Van Speijk Class:
* F 814 – Isaac Sweers – MLM
!!!! Kortenaer class:
* F 807 – Kortenaer – standard frigate (S-frigate)
* F 808 – Callenburgh – standard frigate (S-frigate)
* F 809 – Van Kinsbergen – standard frigate (S-frigate)
* F 810 – Banckert – standard frigate (S-frigate)
* F 811 – Piet Hein – standard frigate (S-frigate)
* F 816 – Abraham Crijnsen – standard frigate (S-frigate)
* F 823 – Philips van Almonde – standard frigate (S-frigate)
* F 824 – Bloys van Treslong – standard frigate (S-frigate)
* F 825 – Jan van Brakel – standard frigate (S-frigate)
* F 826 – Pieter Florisz – standard frigate (S-frigate)
!!!! Jacob Van Heemskerck class:
* F 812 – Jacob van Heemskerck – air defence frigate (L-frigate)
* F 813 – Witte de With – air defence frigate (L-frigate)
!!!! Karel Doorman Class:
* F 827 – Karel Doorman – Multipurpose Frigate (M-Frigate)
* F 829 – Willem van der Zaan – Multipurpose Frigate (M-Frigate)
* F 830 – Tjerk Hiddes – Multipurpose Frigate (M-Frigate)
* F 831 – Van Amstel – Multipurpose Frigate (M-Frigate)
* F 832 – Abraham van der Hulst – Multipurpose Frigate (M-Frigate)
* F 833 – Van Nes – Multipurpose Frigate (M-Frigate)
* F 834 – Van Galen – Multipurpose Frigate (M-Frigate)
!!! Replenishment, Logistics and Landing Support Ships
!!!! Poolster Class:
* A 835 – Poolster – Replenishment Vessel
* A 832 – Zuiderkruis – Replenishment Vessel
!!! Submarine Service
!!!! Dolfijn Class:
* S809 – Zeehond – Submarine
!!!! Potvis Class:
* S 804 – Potvis – Submarine
* S 805 – Tonijn – Submarine
!!!! Zwaardvis (II) Class:
* S 806 – Zwaardvis – Submarine
* S 807 – Tijgerhaai – Submarine
* A 900 – Mercuur – Torpedo Trials Vessel
!!! Mine service
!!!! Wildervank Class:
* M 826 – Grijpskerk – Minesweeper
!!!! Dokkum Class:
* M 802 – Hoogezand – Minesweeper
* M 806 – Roermond – Diver Support Vessel
* M 809 – Naaldwijk – Minesweeper
* M 810 – Abcoude – Minesweeper
* M 812 – Drachten – Minesweeper
* M 813 – Ommen – Minesweeper
* M 815 – Giethoorn – Minesweeper
* M 817 – Venlo – Minesweeper
* M 820 – Woerden – Diver Support Vessel
* M 823 – Naarden – Minesweeper
* M 827 – Hoogeveen – Minesweeper
* M 830 – Sittard – Minesweeper
* M 841 – Gemert – Minesweeper
!!!! Alkmaar class:
* M 853 – Haarlem – Mine Countermeasures vessel
* M 856 – Maassluis – Mine Countermeasures vessel
* M 857 – Makkum – Mine Countermeasures vessel
* M 858 – Middelburg – Mine Countermeasures vessel
* M 859 – Hellevoetsluis – Mine Countermeasures vessel
* M 860 – Schiedam – Mine Countermeasures vessel
* M 861 – Urk – Mine Countermeasures vessel
* M 862 – Zierikzee – Mine Countermeasures vessel
* M 863 – Vlaardingen – Mine Countermeasures vessel
* M 864 – Willemstad – Mine Countermeasures vessel
!!! Auxiliary, Training and Hydrographic Vessels
!!!! Buyskes Class:
* A 904 – Buyskes – Hydrographic Survey Vessel
* A 905 - Blommendal – Hydrographic Survey Vessel
* A 906 – Tydeman – Hydrographic Survey Vessel
* Y8001 – Van Speijk – Support Ship
* A 801 – Pelikaan – Marines Support Ship (for Caribbean)
* Y8050 – Urania – Naval Trainee Vessel
!!! Tugboats
!!!! Linge class:
* A 874 – Linge – Coastal Tug
* A 875 – Regge – Coastal Tug
* A 876 – Hunze – Coastal Tug
* A 877 – Rotte – Coastal Tug
!!!! Breezand Class:
* Y8018 – Breezand – Harbor Tug
!!!! Westwal Class:
* Y8059 – Westwal – Harbor Tug
* Y8058 – Zuidwal – Harbor Tug
* Y8057 – Malzwin – Harbor Tug
* Y8056 – Wierbalg – Harbor Tug
* Y8055 – Schelde – Harbor Tug
!! Info ATAX
In Amsterdam hebben in de periode 1909 - 1926 elektrische taxi's (e-taxi's) van de Amsterdamsche Taxameter-Automobielen Maatschappij (ATAX) gereden.<br>
De ATAX’en waren te herkennen aan een karakteristieke reserveband, gemonteerd op het schutbord aan de voorkant.<br>
In 1908 werd door de Amsterdamse Rijtuigmaatschappij - uitbater van paardentaxi's en huurkoetsjes - de NV Amsterdamsche Taxameter-Automobielen Maatschappij (ATAX) opgericht en in 1909 verschenen de eerste 10 e-taxi's gebouwd door NAMAG Bremen onder licentie van het franse Kriéger en voorzien van nieuwe 'lichte' accu's van AFA.<br>
Zomer 1904 waren het al 24 e-taxi's, in 1913 62 (inclusief 10 in een filiaal te Haarlem). Later dat jaar werden er nog 5 tweedehands e-taxi's (uit München) gekocht.<br>
De ATAX opent oplaadstations aan de Keizersgracht en in de Beursstraat. Ook neemt de ATAX een elektrotechnisch ingenieur in dienst om de vloot te onderhouden.
Door een constructieverandering kon de maximum snelheid van 27 km/u in de loop van 1913 verhoogd worden tot 36 km/u.<br>
Door de 1e Wereldoorlog nam de e-taxivloot af tot 40 stuks in 1914. Ze konden slechts rijdend gehouden worden door 'kannibaliseren' van andere e-taxi's.<br>
Vanaf 1920 ging het slechter met ATAX/ARM. In 1921 werd voor het eerst door ARM geen dividend meer uitgekeerd (in 1918 en 1919 nog 12%!). In 1923 werd zelfs verlies gemaakt (mede veroorzaakt door een langdurige staking).<br>
In 1924 begon men de oudste elektrische en benzine taxi's te vervangen door benzine taxi's van een 'licht' type (Citroën). De afdeling 'e-taxi's' werd geliquideerd, 17 e-taxi's werden gesloopt en in 1925 waren 82 van de 84 taxi's Citroëns.<br>
Half februari 1926 maakte de e-taxi zijn laatste rit door de straten van Amsterdam.
!! De unieke historie van de Catalina met ~BuNo 2459
Vroeg in de middag van de 15e november 1941 wordt constructienummer 300 van de productielijn naar buiten gesleept. Dit was er één van de serie van 33 toestellen die in december 1939 door de United States Navy waren besteld. Hier begint dan ook de roemruchte geschiedenis waarvan toen nog niet gedroomd kon worden dat dit toestel drie onderzeeboten tot zinken zou brengen, bosbranden in Chili en Canada zou bestrijden en uiteindelijk in Europa, als historisch vliegtuig, regelmatig het luchtruim zou gaan kiezen; 75 jaar later.... Momenteel is het de oudste, nog vliegende, Consolidated PBY-5A Catalina in de wereld!
Lees meer:
[[link|https://catalina-pby.nl/historie/negen-levens/]]
<iframe src='https://catalina-pby.nl/historie/negen-levens/' frameborder="0" width="1024"; height="600"></iframe>
!! Willem Barendsz
De Willem Barendsz was het eerste Nederlandse walvisfabrieksschip dat tussen 1946 en 1955 werd gebruikt als moeder- en fabrieksschip voor negen walvisvaartexpedities in de wateren rond Antarctica voor de Nederlandsche Maatschappij voor de Walvischvaart (NMW).<br>
Het schip was oorspronkelijk een tanker, gebouwd in 1931 onder de naam Pan Gothia door de werf Götaverken in Göteborg, van 10.409 brt. In 1945 kocht de NMW in oprichting de tanker aan om het om te bouwen tot moeder- en fabrieksschip voor de eerste Nederlandse walvisvaartexepeditie naar de Zuidpool.<br>
Het tankschip werd door de Amsterdamsche Droogdok Maatschappij en de Nederlandsche Dok en Scheepsbouw Maatschappij omgebouwd tot drijvende traankokerij. Hiervoor werd in het achterschip een slipway aangebracht waarmee de walvissen op het hoofddek getrokken konden worden om daar verwerkt te worden. Na de verbouwing was het tonnage 10.635 brt.<br>
Aan boord van het fabrieksschip bevonden zich twee opvallende gasten: verkenningsvliegtuigen van het type Supermarine Walrus PH-NAW & PH-NAX). Hoewel de Walrus een fabuleuze reputatie genoot op het gebied van betrouwbaarheid, zorgde bijgeloof - vanwege een <<popup "ongeluk te Kaapstad" "Ongeluk met Walrus te Kaapstad">> ervoor dat beide toestellen 'grounded' werden.<br>
De eerste Nederlandse walvisvaartexpeditie met de Willem Barendsz (I) duurde van december 1946 tot mei 1947. Op 17 december begon de vangst, op 21 mei 1947 keerde het schip terug in Amsterdam.
In 1951 bestelde de maatschappij een nieuw schip en het seizoen 1954-1955 was het laatste waaraan de Willem Barendsz (I) als moederschip deelnam. Na de oplevering van het nieuwe schip, de Willem Barendsz (II), in juli 1955 werd het oude schip herdoopt in Bloemendael. Onder die naam bleef het schip nog tot juni 1960 voor de maatschappij in dienst in zijn oorspronkelijke functie van tanker. In het vangstseizoen voerde het als 'shuttle tanker' tussen het nieuwe moederschip en de vaste wal brandstof aan en haalde traan op. Buiten het vangstseizoen werd het als tanker aan derden verhuurd.<br>
In juni 1960 werd het schip - de Willem Barendsz I dus - verkocht aan Nitto Hogei KK in Tokyo en herdoopt in Nitti Maru, die het in 1964 verkochten aan Nippon Suisan KK die de naam wijzigden in Nichei Maru. In september 1966 kwam het schip aan in Aioi (Japan) om te worden gesloopt.<br>
In 1964 besloot de NMW om het bedrijf te staken vanwege toenemende vangstbeperkingen. Om de vangstrechten voor de seizoenen 1964/65 en 1965/66 te gelde te kunnen maken, moest gelijktijdig ook het schip verkocht worden. Dit gebeurde in 1964, maar zodanig dat het schip onmiddellijk weer teruggekocht werd. Daarna werd het schip verkocht aan Atlantic Harvesters (Pty) Ltd, een visserijonderneming in Zuid-Afrika die het schip na de nodige verbouwingen zou gebruiken voor de productie van vismeel, visolie en andere producten aan de Zuid-Afrikaanse kust. Hiertoe werd speciaal Willem Barendsz Co Ltd opgericht, waarin de NMW een aandeel nam. Op 27 oktober 1965 werd het schip aan de nieuwe eigenaar overgedragen. Het bleef de naam Willem Barendsz dragen, maar nu met thuishaven Kaapstad. Op 8 februari 1966 vertrok het voorgoed uit Amsterdam op weg naar Kaapstad. Na een verbouwing kwam het in 1967 in de vaart.<br>
In 1973 werd het schip verkocht aan Korea Wonyang Fisheries Co Ltd in Busan (Zuid-Korea) en herdoopt in Yu Sin (officieel: Yu Sin Ho, 'hervormingsschip'). Het werd omgebouwd tot vismeelverwerkingsschip.<br>
In 1978 werd het schip herdoopt in Gae Cheog No I (officieel: Gae Cheog Ho No I, 'pioniersschip'), in 1980 ingekort tot Gae Cheog. In 1986 werd het schip herdoopt in Ocean Pioneer. In 1996 kreeg het schip de naam Gae Cheog weer terug.<br>
In 2001 werd het schip verkocht aan een sloperij in Xinhui (provincie Guangdong, China). Op 1 juni 2001 kwam het in Xinhui aan. Daarna is het gesloopt.
!! Info
Bron: [[Andere tijden|https://anderetijden.nl/aflevering/244/De-laatste-walvisvaarders]]
<<slider "Op jacht naar traan en spek" Info_walvisvaart1>><br>
<<slider "Een oud bedrijf herleeft" Info_walvisvaart2>><br>
<<slider "'Een groot wonder'" Info_walvisvaart3>><br>
<<slider "Een reis vol problemen" Info_walvisvaart4>><br>
<<slider "Publiciteit rondom de Willem Barendsz" Info_walvisvaart5>><br>
<<slider "De laatste walvisvaarders" Info_walvisvaart6>><br>
<<slider "Werken op de Willem Barendsz" Info_walvisvaart7>><br>
<<slider "Achttien jaar Nederlandse walvisvaart" Info_walvisvaart8>><br>
<<slider "De liquidatie" Info_walvisvaart9>>
Research en tekst: Hannah Dogger, Sieger Verhart
!!!Een nationale gebeurtenis
Op 26 oktober 1946 stonden de kades in de Amsterdamse haven afgeladen met belangstellenden. Het geluid van scheepstoeters schalde over het IJ en vanaf de wal klonk het Wilhelmus, opgevoerd door de Amsterdamse politiekapel. Ondanks het regenachtige herfstweer namen honderden mensen de moeite om de walvisjager Willem Barendsz een laatste groet te brengen. De Nederlandse kranten spraken zelfs van een nationale gebeurtenis. Pas over zeven maanden zou het Nederlandse schip weer terugkeren uit het Zuidpoolgebied, zwaar beladen met walvistraan, zo hoopten de mensen die schip en bemanning uitzwaaiden.
!!!Hét project van herrijzend Nederland
Nederland was al weken in de ban van de walvisvaart, flink aangespoord door alle aandacht die er voor het vertrekkende schip was. In de dagen voor vertrek bezochten de Amsterdamse burgemeester en ook verschillende ministers het schip. Zelfs Prins Bernhard vereerde het schip, dat toen bijna gereed was, nog met een bezoek. Dat de Willem Barendsz nogal wat losmaakte kan oud-walvisvaarder Anton Schols zich nog goed herinneren: 'Mijn familie was enorm enthousiast, het was toch wel hét project van herrijzend Nederland'. Zijn toenmalige werkgever toonde dan ook begrip toen Schols ontslag nam om op walvisjacht te gaan: 'De directeur was mij zeer ter wille, het was immers in het landsbelang dus daar werd niet moeilijk over gedaan'.
!!!Een vertrek om nooit te vergeten
Op weg naar de sluizen van IJmuiden bleek hoe het onder de bevolking leefde dat Nederland op walvisjacht ging. Schols is dat na al die jaren nog niet vergeten: 'Het zag zwart van de mensen. Bootjes voeren met ons mee en langs de kant fietsten mensen mee om maar niks van het afscheid te missen'. Het is duidelijk: naast een schip dat op walvisjacht gaat en het door de oorlog verwoeste Nederland van vet en olie gaat voorzien, vertrekt er ook een symbool van nationale trots.
!!!Dappere mannen in kleine bootjes
Met de expeditie van 1946 was 'een oud Nederlands bedrijf' weer opgepakt. In de 17e eeuw speelde Nederland een belangrijke rol in de walvisjacht, die toen nog in de Noordelijke ijszeeën plaatsvond. Overbevissing en toenemende concurrentie van andere landen zorgden ervoor dat Nederland die positie niet kon vasthouden. Hoewel de walvisvaart in de eeuwen die volgden nauwelijks meer was bedreven, was de herinnering aan de hoogtijdagen van de Nederlandse walvisjacht nog steeds springlevend. Dit beeld werd onder andere in stand gehouden door de bekende schoolplaten waarop dappere mannen in kleine bootjes de walvissen te lijf gingen. Op enkele minder succesvolle pogingen na wees niets er op dat Nederland in de 20ste eeuw weer ter walvisvangst zou trekken, maar de Tweede Wereldoorlog bracht hier verandering in. Gretig verwezen de media dan ook naar het roemruchte verleden. Aan het succesverhaal kon nu eindelijk een nieuw hoofdstuk worden toegevoegd.
!!!Muizenhapjes op de bon
Na de bevrijding lag Nederland in puin en was er aan veel zaken een groot tekort. Schols: 'Wat er was, dat was op de bon, dat waren muizenhapjes. Daar kon je echt niet van leven'. Vooral olie en vetten waren schaars en voor de productie van margarine en zeep waren die grondstoffen essentieel. Vroeger kwam dat uit het buitenland, maar dat was na de bevrijding nog niet mogelijk. Ook de eigen veestapel was aanzienlijk geslonken, aldus Schols: 'Er waren nog wel wat koeien, nog wel wat melk en roomboter, maar het was allemaal mondjesmaat'. In het buitenland kampte men met dezelfde problemen. 'Op de wereldmarkt hoefde je dus ook niet te zijn. Als het er al iets was, dan was het natuurlijk superduur, zo vertelt Schols.
!!!Het is toch geen walvisch?
Er was dus eigenlijk maar één oplossing: Nederland moest zelf het vet gaan halen, zelfs al moest men daarvoor naar de Zuidpool: door de intensieve jacht was er op het noordelijk halfrond nog nauwelijks een walvis te vinden. Dit was ook de gedachte van Versluys, de initiatiefnemer van wat zou uitgroeien tot de Nederlandsche Maatschappij voor de Walvisvaart (NMW). Het idee om walvissen te jagen zou zijn geboren toen hij in de oorlog zat te vissen en werd aangesproken door een politieagent. Die wilde hem een bekeuring geven omdat een gevangen vis onder de maat zou zijn. Hierop antwoordde Versluys verontwaardigd: 'Man, waar maak je je druk over? Het gaat toch niet om een walvisch'? Of het werkelijk zo is gegaan is niet meer te achterhalen, maar vrij snel werden de plannen zo serieus dat een terugkeer van Nederland in de walvisvaart aanstaande was.
!!!Van afgedankte tanker tot Willem Barendsz
Doordat ook de overheid welwillend tegenover het plan stond, kon in Zweden de oude tanker Pan Gothia worden opgekocht. Niet geheel toevallig werd het schip gedoopt tot Willem Barendsz, naar de Nederlandse ontdekkingsreiziger. Barendsz slaagde er weliswaar niet in om zijn doortocht naar Azië te vinden, maar bracht wel het gebied in kaart. Ook maakte hij melding van de vele walvissen die in de poolzeeën rondzwommen en waarop kon worden gejaagd. In de zomer van 1946 werd er in de Amsterdamse haven met man en macht gewerkt om het schip klaar te maken voor de walvisjacht. De Willem Barendsz zou een modern fabrieksschip worden, waarop de gevangen walvissen tot traan konden worden verwerkt. Voor de jacht zelf werden oude marineboten opgekocht en omgebouwd tot jaagboten, die zo de Nederlandse vloot compleet maakten. Schols: 'Het was geen nieuw schip, wij kregen een afgedankte tanker, maar het was natuurlijk al een groot wonder dat wij in staat waren om zo’n schip in de vaart te brengen'.
!!!Noren
Er was echter wel een probleem. De hoogtijdagen van de Nederlandse walvisvaart waren in 1946 al lang vervlogen en eigenlijk wist niemand hoe je walvissen moest vangen. 'Wij Nederlanders wisten de ballen niet meer van de walvisvaart. Van de moderne walvisvaart hadden wij geen kaas gegeten'. Daarom moest er hulp en ervaring komen van Noorse zijde. De Noorse regering was echter niet al te welwillend om Nederland te helpen en deed dan ook alles om het Noren te verbieden in Nederlandse dienst te gaan. Toch kon dit niet voorkomen dat een groot deel van de bemanning van Noorse komaf was. Zij hebben de Nederlanders weer geleerd hoe walvissen te vangen, aldus Schols: 'Die Noren hadden eigenlijk alle leidinggevende functies aan boord'.
!!!Alles voor de bonus
De eerste reis verliep niet zonder problemen, zo weet oud-walvisvaarder Huub Vester zich nog te herinneren. 'Tot aan Kaapstad ging alles zonder problemen. Goed eten en drinken, normale werktijden, alles was goed'. De problemen begonnen pas toen de vangst begon. De Nederlandse kapitein Klaas Visser moest de leiding delen met de Noorse expeditieleider Jespersen. Vester: 'Die Noor nam alles over, Kapitein Visser had verdomd niets meer te vertellen'. Het boterde niet tussen die twee en hierdoor ontbrak het nog wel eens aan leiding. Daarnaast vocht Kapitein Visser ook nog eens een strijd uit met scheepsdokter Melchior, die meermalen aandrong op verbetering van de hygiëne.
!!!Iedereen wordt ingezet
De orders uit Nederland waren echter duidelijk: er moesten zoveel mogelijk walvissen worden geschoten. Zeker toen de vangst na een maand minder groot dan verwacht bleek, werd iedereen ingezet om te helpen met het verwerken van de walvissen. Vester: 'We hadden gewoon te weinig mensen aan boord. Alle mensen die voor de accommodatie zorgden, onze wasbaas, zijn maatje, de hutjongen, de secundaire mensen in de machinekamer, alles werd naar het dek gehaald'. Geklaagd werd er niet, want een grote vangst was ook in het belang van de bemanning, zo zegt Vester: 'Die mensen deden het graag, want er werd bonus gemaakt. Die bonus bracht naderhand geld op'.
!!!Een vuile vieze rotzooi was het
Dat iedereen werd ingezet op het dek bleef volgens Vester niet zonder gevolgen: 'Op een gegeven moment was alles vies, de wc's deden het niet meer. Overal stond een paar centimeter water, met drek uit de overgelopen wc's erin. Kapitein Visser had daar op moeten toezien, maar die had 't niet onder controle. De bemanning werd opgehitst door de Noorse onderkapitein, die spoorde iedereen aan nog meer te werken, voor de bonus. Een vuile vieze rotzooi was het'. Daarnaast waren er nog de problemen met de Noren, maar ook de bemanning van de Faeröer-eilanden. Zij waren door de NMW aan boord gehaald toen er op het laatste moment nog Noren afhaakten. Het was niet altijd even makkelijk werken met de Faeröers weet Schols: 'Het waren hele aimabele mensen, dat is het punt niet. Maar zij kwamen uit een enorme armoede, op dat eiland. Ik denk niet dat ze thuis ook een douche hadden. Als ze een leeg tinnetje van sigaretten hadden, dan gooiden ze dat maar in de afvoer van de WC. Nou, dan kan je wel nagaan dat-ie binnen de kortste keren verstopt zat'.
!!!Walvissen aan de lopende band
In het vaderland bleef dit alles tijdens de reis onopgemerkt. Dat was te danken aan de pr-machine van de maatschappij en de Nederlandse overheid. Betaald door de regering maakte journalist Jaap Kolkman de reis mee en bediende hij de Nederlandse pers van positieve berichten: de walvissen waren vetter dan verwacht, werden aan de lopende band gevangen en de sfeer aan boord was uitstekend. Na terugkomst in Nederland kwam Kolkman's boek uit dat een beeld schetste van de expeditie zoals de NMW en overheid dat graag zagen. In het boek repte Kolkman met geen woord over de problemen die zich tijdens de eerste expeditie hadden voorgedaan. Een heel ander verhaal kwam er van scheepsarts Melchior, die ook met een boek kwam.
!!!De affaire Melchior
De maatschappij en de Nederlandse overheid deden er alles aan om die negatieve berichtgeving tegen te gaan, maar uiteindelijk kwamen toch alle gebreken aan het licht toen het boek van Melchior verscheen. Te weinig personeel en ervaring, verwaarloosde hygiëne en falen van de scheepsleiding, dat waren de belangrijkste punten uit het boek van de scheepsdokter. Na de publicatie barstte een storm van verontwaardiging los en kreeg Melchior heel wat over zich heen. Op kritiek zat niemand te wachten omdat het toch een zaak van nationale trots betrof. Gaandeweg bevestigden echter steeds meer mensen de kritiek van Melchior. Op zo'n manier hoefde het allemaal niet meer, zo was de mening van een journalist van het Vrije Volk: 'Het geld dat op deze manier is verdiend, stinkt. En waarlijk niet alleen naar walvistraan'! De NWM moest uiteindelijk inbinden en erkennen dat er fouten waren gemaakt en Melchior werd gerehabiliteerd. Geheel terecht, zo vindt Vester: 'Melchior heeft alles vanuit hygiënisch en medisch oogpunt geschreven. Ik kan vertellen, er zat geen woord Spaans bij'. Schols is wat laconieker: 'Ach, iedereen wist wel dat er iets moest gebeuren. Als Melchior een kerel was geweest had hij zelf een bezem gepakt om de boel schoon te maken'.
!!!Walvis in Zicht
Ondanks alle negatieve publiciteit bleef de aandacht voor de Willem Barendsz groot. 'Walvis in Zicht', de Polygoonfilm die door Hannes de Boer aan boord gemaakt was, bleek een enorm succes. Honderdduizenden mensen maakten in de bioscoop kennis met de Willem Barendsz en haar bemanning. De film, geproduceerd in opdracht van de walvisvaartmaatschappij en de Nederlandse overheid liet een geromantiseerd beeld van het leven aan boord zien van de Nederlandse trots in de Zuidzee. Vester: 'Ja, ook ik heb de film gezien, ik zit er namelijk zelf ook in'!
!!!Een moeilijke start
Los van alle publiciteit, kon de eerste reis financieel gezien een succes worden genoemd. De aandeelhouders waren tevreden, net als de regering, die nu weer beschikte over een voorraad traan. Zo kon de Willem Barendsz na een moeizame start in de jaren die volgden steeds weer opnieuw uitvaren om de bevolking van traan te voorzien.
!!!IJsbergen
Albert Veldkamp is vanaf de derde reis mee geweest en heeft negen jaar gevaren. Als stuurman was hij vooral werkzaam op de brug, hij hield zich bezig met de navigatie. Ze moesten voorzichtig langs de ijsbergen navigeren, maar dat is altijd goed gegaan. 'Je moest constant op je qui-vive zijn'. Het was wel koud, maar ze hadden warme kleding: een zware katoenen jas met aan de binnenkant schapenwol. Tegenwoordig heb je veel lichtere textielmaterialen.
!!!Neptunus
Het schip was zo'n vier weken onderweg naar Antarctica. Het was heel ontspannen aan boord. Er was wel eens een sportmiddag. Bij de evenaar kwam Neptunus aan boord, dan was er een Neptunusfeest. Aan boord was een winkel waar je van alles kopen kon. Er was een bankwerkerij, een smederij, er waren duikers aan boord om de schroef los te maken als ze ergens in gevaren waren. Er was een doka. Het schip was volledig selfsupporting, eigenlijk een soort dorp. Maar tijdens de vangst was het hard werken: 12 uur op, 12 uur af. Op de terugweg werd het schip schoongemaakt en geschilderd.
!!!De eerste walvis
Toen de eerste walvis aan dek werd gehesen is Veldkamp meteen gaan kijken. Hij wilde het dier aanraken. In het water zie je natuurlijk maar een klein deel van zo'n beest. Op het dek zie je pas wat een enorme omvang ze hebben. Het dier werd opgehaald via de slipway, of walvisstraat. Op het flensdek gaat de speklaag eraf, het karkas gaat naar het voorschip. Er zit veel bloed in een walvis. De flensers dragen laarzen met spijkertjes eronder want het dek wordt spekglad van het vet en het bloed. Maar als stuurman had je natuurlijk geen spijkertjes onder je laarzen, dat zou de stuurhut beschadigen. Dus je moest echt ontzettend uitkijken om niet uit te glijden op het dek.
!!!Wentelteefjes
De eerste reis van Amelander Cor Gransbergen met de Willem Barendsz was in 1951. Hij werkte als arbeider en moest brokken walvis in de kookpotten gooien. Maar al gauw werd hij kok/hofmeester en moest een potje koken voor de bemanning. Hij paste de etenstijden aan aan de visserij. Hij bakte wentelteefjes van oud brood, lekker met suiker en kaneel. Dat vonden de mannen heerlijk in de vrieskou. Hij maakte ook flensjes en kroketten want die kon je makkelijk uit de hand eten. Het was vaak improviseren. Ze hadden veel Noorse schutters en kapiteins op de jagers. 'De Noren waren gek op zoet, ze aten zo een half suikerbrood met een half pakje boter'!
!!!Zuurkool met worst
De Zuid-Afrikaanse matrozen hadden moeite met het eten dat Gransbergen ze voorzette: zuurkool met worst. Dat vonden ze maar niks, ze griezelden ervan. Achteraf vindt hij het niet goed dat hij niet heeft geprobeerd iets te maken dat zij ook lekker vonden. De Noren hielden er wel van, die deden er suiker overheen. Hij had ook altijd een voorraadje drank staan, dat had hij verduisterd. Dan kwamen ze bij hem: 'Heb je een doppie voor ons'? Zelf dronk hij niet.
!!!Kraaiennest
De rasechte Schiermonikooger Tjidde Talsma ging als 18-jarige voor het eerst mee op de Willem Barendsz, in 1947, de tweede reis. Na een aantal jaren kwam hij op een jager terecht. Hij zat in het kraaiennest. Als er een walvis in zicht was, riep hij: 'Whale over starboard'! Dan gooide de roerganger het roer om richting walvis. De walvis zwom weg en de achtervolging werd ingezet. Ondertussen probeerde de harpoenier het dier te raken. 'Het beste was natuurlijk als 'ie geraakt wordt in het hart en op slag dood is. Maar soms waren er meerdere harpoenen nodig. Als de walvis geraakt was maar hard doorzwemt gaat hij er met de jager vandoor. Wat ook wel gebeurde is dat de vis met de lijn langs een scherpe ijsberg zwom in een ijsveld en dan werd de lijn doorgesneden. Dan moest je er weer opnieuw achteraan'!, aldus Talsma.
!!!Wereldmarktprijs
Jarenlang werd de gehele traanproductie door de NMW verkocht aan het Voedselvoorziening Import Bureau. Dit overheidsorgaan kocht de traan op tegen de wereldmarktprijs en verkocht het door aan bedrijven als Unilever die er margarine van maakte. De Korea-oorlog die in 1950 uitbrak dreef de prijs van vetten op. Het bleef interessant om zelf walvissen te vangen want de behoefte aan vetten nam toe. De prijs liep op van £ 45 per ton traan in 1946, £ 100 in 1948 tot £ 141 per ton in 1951.
!!!De Willem Barendsz II
In 1951 sloot de NMW een garantiecontract met de staat. Daardoor kon begonnen worden met de bouw van een nieuw schip, de Willem Barendsz II. Op 20 november 1951 werd de bouwopdracht gegeven aan scheepswerf Wilton-Feijenoord te Schiedam. Het schip was klaar op 9 juli 1955. De Willem Barendsz II had tweemaal meer capaciteit om traan te bevatten dan de oude, en kon twee walvissen tegelijk verwerken. Ook kon op dit schip walvisvlees worden omgezet in vleesmeel. De Willem Barendsz I bleef in gebruik als tanker. Het aantal jagers werd vermeerderd tot achttien. De walvispopulatie was echter afgenomen en daarom werd het quotum voor Nederland verlaagd. De vangst van de Willem Barendsz II was niet hoger dan vroeger.
!!!Geen succesverhaal
De prijs van traan ging intussen omlaag: in 1958 bracht een ton traan nog maar £ 73 op. Ook kwamen andere vetten beschikbaar, bijvoorbeeld zonnebloemolie. De walvisvaart was commercieel gezien geen succesverhaal meer, er moest zelfs geld bijgelegd worden. Tot en met 1959 moest de overheid een bedrag van ƒ 34.000.000 bijpassen! Tussen 1946 en 1964 ondernam Nederland 18 walvisvaartexpedities. Er werden gemiddeld per keer 1400 walvissen gevangen. In totaal ving de Nederlandse expeditie in 18 jaar tijd ruim 26.000 walvissen: blauwe vinvissen, witte vinvissen, bultruggen en potvissen.
!!!Aflopende zaak
Het garantiecontract met de staat liep af in 1962. Door de afnemende walvisstand werden lagere quota afgekondigd door de IWC waartegen Nederland telkens fel protesteerde. Albert Veldkamp herinnert zich: 'Er waren die eerste keren volop walvissen te zien, soms zag je er wel 200 bij elkaar zwemmen. Het werd steeds minder'. Soms zagen ze vier dagen geen walvis. Er werd toen al gezegd: 'Als je een andere baan kunt krijgen moet je het doen, want dit is een aflopende zaak'. Hij heeft nog tot 1959 doorgewerkt. Ook Anton Schols zag de walvisterugloop wel aankomen. 'De grotere soorten waren er gewoon niet meer, het aantal vinvissen liep steeds verder terug en op mijn laatste reizen zag je van de blauwe vinvis nog nauwelijks exemplaren'.
!!!Gesloopt
De NMW werkte na het aflopen van het garantiecontract met de staat toe naar een liquidatie. In 1964 werden het Nederlandse quotum en de Willem Barendsz II verkocht aan Japan. Het ging de Japanners echter vooral om het vangstquotum, het fabrieksschip hadden ze niet nodig. Dat bleef achter in Amsterdam. Na enig ombouwen werd het schip doorverkocht aan een Zuid-Afrikaanse maatschappij, die er vismeel, visolie en diepvriesvis mee produceerde. In 2001 is het schip gesloopt.
!! Informatie omtrent historische watervliegtuigen
<<tabs "
[[Algemene informatie watervliegtuigen]]
[[Afkortingen]]
[[Marine Luchtvaart Dienst]]
[[Roundels NL]]
" "
[[Algemene informatie watervliegtuigen]]
" "" "tc-vertical">>
!! Informatie omtrent Nederlandse marineschepen
<<tabs "
[[Ontstaan van deze databank]]
Scheepstypen
[[Registratienummers]]
[[Vlaggebruik Koninklijke Marine]]
[[Zijner/Harer Majesteits]]
[[Afkortingen]]
[[Gouvernementsmarine]]
" "">>
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Isaac Sweers 1941" Schepen238>>
{{||$:/_ship_template}}
* <<slider "Fregat Isaac Sweers ca. 1979" Schepen476>>
In de periode juli 1980 t/m augustus 1982 werd het fregat te Den helder gemoderniseerd.<br>
Na de uitdienstname is het schip verkocht aan Indonesië en daar in dienst gesteld als ''Karel Satsuitubun''.
* De klasse bestond uit 4 schepen: ''Gerard Callenburgh'', ''Isaac Sweers'', ''Philips van Almonde'' en ''Tjerk Hiddes''.
** Bij de Duitse inval in 1940 werd de ''Isaac Sweers'' onafgebouwd naar Engeland gesleept, daar afgebouwd en in dienst genomen.<br>In 1942 getorpedeerd.
** De ''Philips van Almonde'' werd in Vlissingen op de werf opgeblazen.
** De ''Gerard Callenburgh'' en ''Tjerk Hiddes'' werden tot zinken gebracht.<br>De Tjerk Hiddes was te zwaar beschadigd en werd gesloopt.<br>De Gerard Callenburgh werd gelicht en afgebouwd door de Duitsers en als ''ZH-1'' in dienst genomen (1942-1944).
ex IJM14 (1906).<br>De trawler werd in het voorjaar van 1941 in Engeland gevorderd en omgebouwd tot hulpmijnenveger. Veegde mijnen rond Groot-Brittannië totdat het op 10 januari 1944 overgedragen werd aan de Royal Navy.
{{||$:/_ship_template}}
* <<slider "(Rivier)kanonneerboot Isala ca. 1890" Schepen137>>
{{||$:/_ship_template}}
* <<slider "Torpedoboot IX 1900" Schepen254>>
<<imageh 1913_Rozengracht_hoek_Lijnbaansgracht_ATAX_J_L_Scherpenisse.jpg 400>>
//Rozengracht hoek Lijnbaansgracht. ATAX taxi, J.L. Scherpenisse, 1913.//
<<imageh 1892_Oostelijke_Handelskade_geprepareerde_Noorse_walvis_Jacob_Olie.jpg 400>>
//Oostelijke Handelskade, aankomst van de in Noorwegen gevangen en geprepareerde walvis. Jacob Olie, 1892.//
<<imageh 1892_Oostelijke_Handelskade_geprepareerde_Noorse_walvis2_Jacob_Olie.jpg 400>>
//Oostelijke Handelskade, aankomst van de in Noorwegen gevangen en geprepareerde walvis. Jacob Olie, 1892.//
<<imageh 1892_Oostelijke_Handelskade_geprepareerde_Noorse_walvis3_Jacob_Olie.jpg 400>>
//Oostelijke Handelskade, aankomst van de in Noorwegen gevangen en geprepareerde walvis. Jacob Olie, 1892.//
<<imageh 1892_Oostelijke_Handelskade_geprepareerde_Noorse_walvis4_Jacob_Olie.jpg 400>>
//Oostelijke Handelskade, aankomst van de in Noorwegen gevangen en geprepareerde walvis. Jacob Olie, 1892.//
<<imageh 1892_Oostelijke_Handelskade_geprepareerde_Noorse_walvis5_Jacob_Olie.jpg 400>>
//Oostelijke Handelskade, 'KNMI-gebouw', tentoonstelling van de Noorse geprepareerde walvis. Jacob Olie, 1892.//
<<imageh 1892_Marine-Etablissement_H_M_Alkmaar_vraag_Jacob_Olie.jpg 400>>
//Marine Etablissement met onbekend schip. Jacob Olie, 1892.<br><<popup Schroefstoomschip Schroefstoomschip>> [[Alkmaar|Alkmaar (1874)]]?//
{{||$:/_ship_template}}
* <<slider "Pantserschip Jacob van Heemskerck 1909" "Schepen005">>
* <<slider "Pantserschip Jacob van Heemskerck 1909" "Schepen028">>
* <<slider "Pantserschip Jacob van Heemskerck 1909" Schepen150>>
* <<slider "Pantserschip Jacob van Heemskerck 1911" "Schepen026">>
* <<slider "Pantserschip Jacob van Heemskerck 1911" "Schepen027">>
* <<slider "Pantserschip Jacob van Heemskerck 1911" "Schepen025">>
* <<slider "Pantserschip Jacob van Heemskerck 1912" "Schepen022">>
* <<slider "Pantserschip Jacob van Heemskerck 1912" "Schepen023">>
In 1939 in gebruik genomen als drijvend geschutsplatform ('Batterijschip IJmuiden'). De bemanning bracht op 14 mei 1940 het schip tot zinken. Het schip werd door de Duitsers gelicht en omgebouwd tot een drijvende batterij voor luchtdoelgeschut 'Undine' (o.a bij Peenemünde).<br>
Na de oorlog werd de Undine in Wilhelmshaven teruggevonden, aan Nederland teruggegeven en omgebouwd tot logementsschip. In 1948 kwam zij in dienst als de 'Neptunus'. In 1974 werd zij uit dienst genomen.
{{||$:/_ship_template}}
* <<slider "Kruiser Jacob van Heemskerck 1946" Schepen113>>
In mei 1940 was het schip nog in aanbouw. Het werd vervroegd op 10 mei in dienst genomen en naar het Verenigd Koninkrijk gevaren. In Portsmouth werd het schip verder afgebouwd als luchtverdedigingskruiser.<br>
De 'Jacob van Heemskerck' escorteerde de kruiser 'Sumatra' waarmee Prinses Juliana en haar twee dochters naar Halifax werden overgebracht (3 - 11 juni 1940).<br>
Van 1955 t/m 1969 in dienst als logementschip.
{{||$:/_ship_template}}
* <<slider "Fregat Jacob van Heemskerck 2004" Schepen183>>
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Jaguar 2014" Schepen346>>
In 1937 naar Nederlands-Indië gevaren en daar werd de registratie veranderd van ''A'' naar ''AM'' om verwarring met de mijnenveger [[A (1930)]] te voorkomen.<br>
Op 6 maart 1942 week de Jan van Amstel samen met de Eland Dubois (beide ongecamoufleerd i.t.t. de Abraham Crijnssen) uit naar Australië. Op 7 maart 1942 werden de schepen gespot door een Japans verkenningsvliegtuig. Er werd besloten de Eland Dubois te vernietigen, omdat één van de ketels niet functioneerde.<br>
Nadat de Eland Dubois was vernietigd vervolgde de Jan van Amstel de overtocht naar Australië. In de avond van 8 maart 1942 werd het schip gespot door een Japanse torpedobootjager die het vuur opende en de Jan van Amstel tot zinken bracht.
Stalen mijnenvegers waren na WWII niet meer nodig omdat in NAVO-verband nieuwe, houten mijnenvegers waren ontworpen in verband met de vele magnetische mijnen.<br>
De resterende 4 schepen: ''Abraham Crijnssen'', ''Abraham van der Hulst'', ''Jan van Gelder'' en ''Pieter Florisz'' werden eerst ingezet voor patrouillediensten in Nederlands-Indië en na terugkeer in Nederland omgebouwd tot netpoortschepen.
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Jan van Brakel ca. 1937" Schepen242>>
* <<slider "Escortschip Jan van Brakel ca. 1944" Schepen241>>
Gebouwd als mijnenlegger; echter ook ingericht als vaartuig voor politietoezicht op de visserij.<br>
In 1944 te Miami omgebouwd tot escortevaartuig.<br>
Na WWII als moederschip voor mijnenvegers, later opnemingsvaartuig, te Nieuw-Guinea.<br>
In 1950 omgebouwd tot bergingsschip.<br>
In 1951-1952 gemoderniseerd en geklassificeerd als fregat.
In 1957 uit de sterkte afgevoerd en nabij Biak gebruikt als doelschip voor schiet- en bombardementsoefeningen.
{{||$:/_ship_template}}
* <<slider "Fregat Jan van Brakel ca. 1992" Schepen471>>
Na de uitdienstname werd de Jan van Brakel verkocht aan Griekenland.<br>
Bij de Griekse marine is het schip op 9 november 2002 in dienst genomen als ''Kanaris'' (F464).
|borderless|k
|G1 | |Johan van Brakel|
|G2 ||Jan Danielzoon van der Rijn|
|G3 ||Meijndert Jentjes|
|G4 ||Willem Willemsze|
|G5 ||Roemer Vlacq|
|G6 ||Pieter Constant|
|G7 ||Jacob Clydijck|
|G8 ||Cornelis Janssen de Haan|
{{||$:/_ship_template}}
* <<slider "Mijnenveger/mijnenlegger Jan van Gelder 1938" Schepen013>>
ex IJM 10, Persia (1906).<br>De trawler werd in mei 1940 in Engeland gevorderd en verbouwd tot hulpmijnenveger waarna het schip mijnen veegde in Britse wateren. Op 17 maart 1943 werd het schip uit dienst gesteld en overgedragen aan de Britse marine. Na de oorlog werd het schip teruggegeven aan de oorspronkelijke eigenaar.
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Java ca. 1902" Schepen085>>
{{NI}} Na 1906 in gouvernementsdienst.
{{||$:/_ship_template}}
* <<slider "Kruiser Java 1929" Vliegtuig008>>
* <<slider "Kruiser Java 1930" Schepen075>>
* <<slider "Kruiser Java ca. 1930" Schepen092>>
{{NI}} Getorpedeerd bij de slag in de Javazee (27-2-1942).
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip (LPD) Johan de Witt 2013" Schepen202>>
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Johan Maurits van Nassau 1937" Schepen235>>
Vanaf 1933 stationschip in de Nederlandse Antillen. In 1937 keerde het schip terug naar Europa om Nederlandse schepen te beschermen tijdens de Spaanse Burgeroorlog. Op 21 januari 1939 keerde het schip voor het eerst sinds 1933 terug naar Nederland. Op 14 mei werd door de Johan Maurits de Duitse batterij bij Kornwerderzand onder vuur genomen, waarbij 98 schoten zijn afgevuurd. Later die dag ging het schip verloren bij een luchtaanval bij Callantsoog terwijl het schip probeerde uit te wijken naar het Verenigd Koninkrijk.
{{||$:/_ship_template}}
* <<slider "Johan Maurits van Nassau 1937" Schepen235>>
* <<slider "Johan Maurits van Nassau ca. 1952" Schepen236>>
Brits River-klasse fregat/escorteschip ''Ribble''; tijdens de bouw overgedragen aan Nederland.
//Bron: Wikipedia,// https://en.wikipedia.org/wiki/John_Perry_%28engineer%29
<<popup "John Perry" JohnPerry>> (14 februari 1850 – 1920) was een baanbrekende ingenieur en wiskundige uit Ierland . Hij werd geboren in Garvagh , County Londonderry als tweede zoon van Samuel Perry.<br>
Perry werkte als Lord Kelvin 's assistent aan de Universiteit van Glasgow , en werd later hoogleraar werktuigbouwkunde aan Finsbury Technical College.<br>
Hij was een collega van William Ayrton aan het Imperial College of Engineering in Tokio , 1875-79. In 1900 werd hij gekozen tot voorzitter van de 'Institution of Electrical Engineers' en was van 1906 tot 1908 voorzitter van de 'Physical Society of London'.
!!!Elektrische driewieler
In 1881 ontwierp Perry samen met William Ayrton een elektrische driewieler die als de eerste elektrische auto wordt beschouwd.
!!!Lord Kelvin uitdagend
In 1895, publiceerde Perry een verhandeling waarin hij Kelvin's aanname van een lage thermische geleidbaarheid in de aarde betwistte. Op basis van deze lage thermische was Kelvin's schatting van de ouderdom van de aarde (maximaal 400 miljoen jaar oud) gebaseerd. Dat maakte weinig indruk. Pas na ontdekking en toepassing van radiometrische datering bleek de aarde vele malen ouder dan Kelvin dacht.
[img[John Perry|Images/John_Perry.jpg]]<br>
//John Perry//
'Joint logistic Support Ship' (JSS).<br>
Eerst 'Joint Logistiek Ondersteuningsschip' (JLOS).
!!! Kanonneerboot
Een kanonneerboot is letterlijk een schip (of boot) dat een of meer stukken zwaar geschut bezit. De term is behoorlijk ruim op te vatten en de gebruikelijke betekenis is door de jaren heen veranderd.
# Rond 1900: Een laag op het water liggend, niet zeewaardig vaartuig voor op rivieren.<br>
# Later: zeewaardig schip vergelijkbaar met een torpedoboot, met dit verschil dat kanonneerboten met machinegeweren en ander geschut werden bewapend, juist om deze torpedoboten uit te schakelen.
<<w>>
[[Wikipedia|https://nl.wikipedia.org/wiki/Karel_Doorman]]
<iframe src='https://nl.wikipedia.org/wiki/Karel_Doorman' frameborder="0" width="1024"; height="600"></iframe>
{{||$:/_ship_template}}
* <<slider "Vliegdekschip Karel Doorman 1946" Schepen053>>
{{||$:/_ship_template}}
* <<slider "Vliegdekschip Karel Doorman ca. 1960" Schepen067>>
* <<slider "Vliegdekschip Karel Doorman 1962" Schepen089>>
{{||$:/_ship_template}}
* <<slider "Fregat Karel Doorman ca. 1995" Schepen291>>
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip (JSS) Karel Doorman 2015" Schepen200>>
De Karel Doorman (I) was de Britse 'escort aircraft carrier' ''Nairana''. De Nairana was een koelschip dat tijdens de Tweede Wereldoorlog in opdracht van de Royal Navy werd omgebouwd tot vliegdekschip.<br>
Deze escorte-carrier werd in 1946 gehuurd door de Nederlandse marine voor de duur van ongeveer twee jaar, en tijdens deze periode door de Nederlandse marine vernoemd naar Karel Doorman.<br>
Het schip kon ongeveer 18 vliegtuigen aan boord nemen. Deze waren van het type Fairey Barracuda, Fairey Firefly Mk.1 en Hawker Sea Fury.
De Karel Doorman (II) was het tweede en laatste vliegdekschip van de Koninklijke Marine. Het was tevens het grootste schip dat ooit bij de Nederlandse marine heeft gevaren. Het schip behoorde tot de Colossusklasse en was op 17 januari 1945 bij de Royal Navy in dienst gesteld als ''Venerable''. De Royal Navy heeft het schip tijdens de Tweede Wereldoorlog in de Grote Oceaan ingezet. In Nederlandse dienst is het schip vernoemd naar schout-bij-nacht Karel Doorman.<br>
In 1948 kwam het bij de Koninklijke Marine in dienst ter vervanging van het eerste vliegdekschip, met dezelfde naam, dat vanaf 1946 gehuurd was. Van juli 1955 tot juni 1958 werd het bij de Schiedamse scheepswerf Wilton-Fijenoord verbouwd om het geschikt te maken voor gebruik door straaljagers. Daarbij werd een hoekdek aangebracht van acht graden, de hydraulische katapult werd vervangen door een stoomkatapult en er werd een deklandingsspiegelsysteem geïnstalleerd.<br>
Het schip bood aanvankelijk ruimte aan ongeveer 30 vliegtuigen. Door het gebruik van grotere en zwaardere toestellen na de verbouwing waren dat er nog 20.<br>
In 1968 werd het verkocht aan Argentinië ( als ''ARA Veinticinco de Mayo'').
Karel Doorman volgde als marineofficier - op eigen verzoek - een opleiding tot vlieger. In 1915 behaalde hij zijn vliegbrevet en in 1916 het belangrijkere marinevliegbrevet.<br>Van 1917 tot 1921 was hij instructeur, eerst te Soesterberg en vanaf oktober 1918 op het marinevliegkamp De Kooy bij Den Helder. Van dit laatste landvliegkamp van de marine was hij van 1919 tot 1921 tevens de commandant. Zie [[Karel Doorman]] voor meer informatie.
{{||$:/_plane_template}}
* <<slider "Kawanishi H6K ca. 1939" Vliegtuig193>>
* <<slider "Kawanishi H6K 1946" Vliegtuig216>>
Geallieerde codenaam: 'Mavis'.<br>
I.t.t de Kawanishi H8K was de H6K een amfibische vliegboot (inklapbare wielen).
{{||$:/_plane_template}}
* <<slider "Kawanishi H8K2 ca. 1944" Vliegtuig121>>
* <<slider "Kawanishi H8K2 ca. 1944" Vliegtuig215>>
Geallieerde codenaam: 'Emily'.<br>
Was waarschijnlijk de beste vliegboot van WWII.<br>
Het was het snelste vliegboottype van de oorlog, kon goed op water landen, was zwaar bewapend en had ter bescherming van de bemanning tamelijk veel bepantsering.<br>In tegenstelling tot de geallieerde vliegboten, zoals de Martin PBM-5A Mariner en de Consolidated PBY-5A Catalina, die ook van landingsbanen gebruik konden maken, was deze grote Japanse vliegboot alleen bestemd voor landingen op het water.
!! Kawanishi
|Type |rol |opmerkingen |h
|[[H6K4|Kawanishi H6K4]]|{{Kawanishi H6K4!!soort}}||
|[[H8K2|Kawanishi H8K2]]|{{Kawanishi H8K2!!soort}}||
{{||$:/_ship_template}}
* <<slider "Hulpmijnenveger Kawi ca. 1940" Schepen419>>
Werd in 1940 als Hulpmijnenveger 7 (HMV7) in dienst gesteld. Op 2 maart 1942 werd de Kawi door de eigen bemanning tot zinken gebracht te Soerabaja. Het schip werd door de Japanners gelicht en op 15 maart 1943 in dienst gesteld als hulponderzeebootjager 109. Op 14 augustus van datzelfde jaar werd het vaartuig bij Balikpapan, Borneo, door een Amerikaanse torpedobootjager in brand geschoten waarna het schip verloren ging.
{{||$:/_ship_template}}
* <<slider "Duikboot KI 1916" Schepen104>>
{{||$:/_ship_template}}
* <<slider "Duikboot KII 1922" Schepen250>>
* <<slider "Pelikaan-divisie 1923" Schepen445>>
Koninklijk Instituut voor de Marine
<style>
html .tgc-tooltip .tgc-tooltiptext {
min-width: 350px;
}
</style>
{{||$:/_ship_template}}
* <<slider "Duikboot KIV ca. 1929" Schepen103>>
De A-klasse waren de eerste Nederlandse mijnenvegers die daadwerkelijk als mijnenveger werd gebouwd. Daarvoor waren het tot mijnenvegers omgebouwde sleepboten.
De 'klasse'-aanduiding in bijvoorbeeld de schroefstoomschepen of stoomkanonneerboten geeft aan of we met een groot of een klein(er) schip te maken hebben. De grootste (en zwaarst bewapende) schepen hadden de laagste klasse-aanduiding.
Bijvoorbeeld: Een schroefstoomschip der 1e klasse van de Atjeh-klasse uit het laatste kwart van de 19e eeuw was bijna 92 meter lang, had een waterverplaatsing van 3160 ton en een bewapening van 10 kanons. Het schroefstoomschip der 4e klasse Bonaire uit dezelfde tijd was ruim 53 meter lang, had een waterverplaatsing van 850 ton en een bewapening van 4 kanons.
De klasse-aanduidingen stammen uit de 17e en 18e eeuw. Na 1890 zijn er volgens mij geen schepen meer in dienst gesteld die in een klasse 1, 2, 3 of 4 zijn ingedeeld.
{{NI}} Na 1931 in gouvernementsdienst.
{{||$:/_ship_template}}
* <<slider "Ramtorenschip Koning der Nederlanden ca. 1885" Schepen127>>
De kiel gelegd als ''Matador''; tijdens de bouw hernoemd tot ''Koning der Nederlanden''. Heeft dienst gedaan in Nederlands-Indië.<br>
In 1895 in reserve en daarna omgebouwd tot wachtschip en gestationeerd in Soerabaja in Nederlands-Indië, waar het op 1 december 1899 in dienst gesteld werd. Van 1916 tot 1923 was het schip verbonden aan de onderzeebootdienst.
{{||$:/_ship_template}}
* <<slider "Veerboot Koningin Emma 1933" Schepen481>>
De Koningin Emma werd gelicht en na herstel weer als veerboot in gebruik genomen. Op 5 september 1944 werd het schip door de Duitsers in beslag genomen om terugtrekkende Duitse troepen te vervoeren. In mei 1945 werd de veerboot beschadigd teruggevonden in de Rotterdamse Merwehaven. Het schip werd in Vlissingen hersteld en op 24 november van datzelfde jaar weer als veerboot in gebruik genomen. Halverwege de jaren 50 werd de veerboot met 10 meter verlengd om meer auto's te kunnen vervoeren. Eind 1968 kocht Rijkswaterstaat het vaartuig om te gebruiken als logementschip. In 1974 werd het schip verkocht aan een particulier die het als recreatievaartuig Estrella in gebruik nam ten behoeve van de sportvisserij.
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Koningin Emma der Nederlanden 1895" Schepen133>>
In 1879 omgedoopt van De Ruyter in Koningin Emma der Nederlanden (vanwege de bouw van een nieuw schroefstoomschip van de Atjeh-klasse met de naam De Ruyter).
De 'Koningin Emma' en de 'Prins Willem I', beide veerboten van de Provinciale Stoombootdiensten in Zeeland, werden in augustus 1939 gevorderd en na verbouwing tot hulpmijnenlegger bij De Schelde te Vlissingen weer vrijgegeven.<br>Op 10 mei 1940 werden de veerboten opnieuw gevorderd en als Hulpmijnenlegger 2 en Hulpmijnenlegger 1 in dienst gesteld. De beide schepen legden nog mijnen in Zeeuwse wateren, maar werden op 18 mei gebruikt om, samen met andere veerboten, terugtrekkende Franse troepen over te zetten van Walcheren naar Zeeuws-Vlaanderen. Daarna werden de schepen bij Breskens tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Pantserschip Koningin Regentes ca. 1905" Schepen114>>
{{||$:/_ship_template}}
* <<slider "Pantserdekschip Koningin Wilhelmina der Nederlanden 1893" Schepen015>>
* <<slider "Pantserdekschip Koningin Wilhelmina der Nederlanden 1893" Schepen019>>
* <<slider "Pantserdekschip Koningin Wilhelmina der Nederlanden 1893" Schepen304>>
[img width=120 [Images/koninklijke_standaard_2013.jpg]]
<svg xmlns="https://www.w3.org/2000/svg" width="120" height="80" viewBox="0 0 9 6">
<rect fill="#21468B" width="9" height="6"/>
<rect fill="#FFF" width="9" height="4"/>
<rect fill="#AE1C28" width="9" height="2"/>
</svg>
!!! Koolhoven
In 1911 bouwde Frits Koolhoven zijn eerste eigen vliegtuig, de 'Heidevogel', een aangepaste kopie van de Farman dubbeldekker. Het was een van de eerste in Nederland ontworpen en gebouwde vliegtuigen (Hein van der Burg was hem voor en Anthony Fokker bouwde zijn Spin in Duitsland).<br>
Tussen 1911 en 1926 was Frits Koolhoven vliegtuigontwerper voor het Franse Deperdussin en het Engelse Armstrong Whitworth en B.A.T en vervolgens voor de Nederlandse vliegtuigbouwers Spyker en de NVI (Nationale Vliegtuig Industrie). Na het debacle van de NVI begon Koolhoven voor zichzelf.<br>
Koolhoven bouwde v.n.l. civiele vliegtuigen.<br>
De [[Koolhoven F.K. 51]] was een militaire dubbeldekker trainer c.q. verkenner met twee open, achter elkaar geplaatste cockpits. Het toestel werd ontworpen naar specificaties van de LVA (de toenmalige Luchtvaart Afdeling van de landmacht). Het eerste prototype vloog in mei 1935. In totaal zijn 142 stuks gemaakt.<br>
Na vergelijkende tests met de Britse AVRO Tutor, ging de LVA over tot aanschaf van een eerste serie van 10 stuks FK-51. Er volgde een bestelling van 15 stuks, en nog een van 29 stuks. De laatste groep zou gebruikt worden als lichte verkenner. Begin mei 1940 waren er hiervan nog 16 in dienst.<br>
Ook de Nederlandse MLD was geïnteresseerd in de FK-51 en kocht 17 stuks, die alle verloren gingen in de meidagen.
Verder bestelde de LA-KNIL 60 stuks FK-51, waarvan er 45 vóór het uitbreken van de oorlog afgeleverd konden worden.
{{||$:/_plane_template}}
* <<slider "Koolhoven F.K. 51 ca. 1938" Vliegtuig140>>
* <<slider "Koolhoven F.K. 51 ca. 1939" Vliegtuig141>>
Er werden 25 lestoestellenvarianten voor de LVA geproduceerd. In 1937 volgde nog een bestelling van 29 van de verkenner variant, waarvan er uiteindelijk maar 17 werden geleverd. Koolhoven leverde in totaal 17 toestellen aan de Marine Luchtvaartdienst (MLD: ''E1 - E15'') en 45 aan het LA-KNIL.
De exemplaren van de MLD zijn allemaal op vliegveld De Kooy vernietigd (mei 1940). Alleen de overgebleven exemplaren van de LA-KNIL zijn veelvuldig ingezet tijdens de slag om Nederlandsch-Indië.
!! Koolhoven
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[F.K.51|Koolhoven F.K. 51]] |{{Koolhoven F.K. 51!!soort}}| 17| E1 - E17 | {{Koolhoven F.K. 51!!per}} |
{{||$:/_ship_template}}
* <<slider "Pantserschip Kortenaer 1896" Schepen309>>
* <<slider "Pantserschip Kortenaer 1896" Schepen299>>
* <<slider "Pantserschip Kortenaer 1909" Schepen034>>
* <<slider "Pantserschip Kortenaer ca. 1912" Schepen135>>
{{||$:/_ship_template}}
* <<slider "Kortenaer 1929" Schepen009>>
* <<slider "Kortenaer 1929" Schepen024>>
Ex-Britse ''Scorpion'' (G72).
{{||$:/_ship_template}}
* <<slider "Fregat Kortenaer ca. 1989" Schepen472>>
Na de uitdienstname werd de Kortenaer verkocht aan Griekenland.<br>
Bij de Griekse marine is het schip op 24 oktober 2003 in dienst genomen als ''Kountouriotis'' (F462).
''Pieter Florisz (1981)'' en ''Witte de With (1982)'' zijn onafgebouwd verkocht aan Griekenland.<br>
@@.c ''Willem van der Zaan (1983)'' werd hernoemd tot [[Pieter Florisz (1983)]]@@.
!!! Korvet
Een korvet is de term voor een klein type fregat (echter geen officiële classificatie).
Een korvet kan - evenals een fregat - meerdere oorlogstaken (bestrijden van zee-, lucht- en onderwaterdoelen) uitvoeren, maar niet tegelijk.
<<w>>
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Krakatau 1924" Schepen246>>
* <<slider "Mijnenlegger Krakatau 1928" Schepen247>>
* <<slider "Mijnenlegger Krakatau 1933" Schepen248>>
{{||$:/_ship_template}}
* <<slider "Monitor Krokodil 1874" Schepen087>>
* <<slider "Monitor Krokodil ca. 1890" Schepen285>>
{{NI}}<br>Schip met dezelfde naam in overlappende periode!
* [[Krokodil (1870)]] 1868-1909
* [[Krokodil (1907)]] 1907-1921
!!! Kruiser
Een oorlogsschip dat veel taken kan uitvoeren zoals het bekampen van vijandelijke oorlogsschepen, patrouilleren, beschermen van de handelsroutes, verkenningstaken en het versterken van de aanvalskracht van vlooteenheden.
<<w>>
<$tiddler tiddler=<<currentTab>>>
{{||$:/_pennantnummer_template}}
</$tiddler>
<!--
1) Kloon $:/_pennantnummer_details_template
2) Hernoem tiddler tot 'Schepen' (b.v. Fregatten)
3) Vervang in veld 'filter' de 'C' (voor kruisers) door het bijbehorende voorvoegsel toe (voor fregatten 'F')
<<penlinks filter char>>
vereist in TW5.1.17 $:/core/modules/filters/regexps.js
-->
!! Nederland
De Nederlandse Kustwacht is opgericht op 26 februari 1987.<br>
Na vergaan rammonitor Adder (1882), werd een soort kustwacht opgericht (vanaf de bemande vuurtorens) onder het beheer van het Loodswezen (dat weer onder de marine viel).<br>
Vanaf de jaren zestig nam de overheidsbelangstelling voor de Noordzee toe. Het milieu moest bewaakt worden, de visserij moest gecontroleerd worden, de olie- en gaswinning op de Noordzee kwam op, er werd zand en grind gewonnen, etc. En ieder ministerie dat meende iets op de Noordzee te doen te hebben, richtte een afdeling op, kocht een transportmiddel en ging zijn taak uitvoeren en op een gegeven moment waren meer dan 20 overheidsdiensten werkzaam op de Noordzee. Dit leidde uiteindelijk tot de oprichting van de Kustwacht in 1987.<br>
26 februari 1987 ging de Kustwacht van start in het gebouw van Scheveningen Radio in IJmuiden. In 1995 kwam de beslissing dat het Kustwachtcentrum bij het Ministerie van Defensie werd ondergebracht en dat betekende verhuizing van het centrum naar Den Helder. Dat werd gerealiseerd op 23 november 2001.
!!!Schepen
!!!! Rijksrederij:
De volgende schepen zijn vanuit de Rijksrederij permanent toegewezen aan de Kustwacht:<br>
Het Emergency Towing Vessel ''Guardian''. De Guardian wordt gecharterd door het ministerie van Infrastructuur en Waterstaat en is ondergebracht bij Multraship. De taak van de Guardian is het voorkomen van calamiteiten. Het schip wordt uit voorzorg ingezet vanaf windkracht 5 bft. Dit schip is geen eigendom van de Rijksrederij, maar deze beheert wel het contract tussen het ministerie van Infrastructuur en Waterstaat en Multraship.<br>
Patrouillevaartuigen ''Visarend'', ''Zeearend'' en ''Barend Biesheuvel''
Verder heeft de Kustwacht ''trekkingsrechten'' op de volgende, eveneens bij de Rijksrederij ondergebrachte, schepen:<br>
Drie zeegaande betonningsvaartuigen, t.w. de ''Frans Naerebout'', ''Rotterdam'' en ''Terschelling'' en vier kleinere betonningsvaartuigen voor de ruimere binnenwateren, t.w. ''Nieuwe Diep'', ''Schuitengat'', ''Vliestroom'' en ''Waddenzee''. Deze schepen worden ingezet om boeien te onderhouden, te repareren en om nieuwe boeien te plaatsen.<br>
Het multifunctioneel vaartuig ''Arca'' dat wordt ingezet bij oliebestrijding en doet daarnaast hydro- en oceanografisch onderzoek.<br>
Meetvaartuig ''Zirfaea'' voor hydro- en oceanografisch onderzoek.
!!!! De Koninklijke Marine
Deze stelt een mijnenbestrijdings vaartuig van de Alkmaar-klasse beschikbaar voor Kustwachttaken. (o.a. voor visserijcontrole door de Nederlandse Voedsel- en Waren Autoriteit) Verder kan de Kustwacht, indien nodig, gebruik maken van andere schepen van de Koninklijke Marine, zoals fregatten en hydrografische vaartuigen en een aantal kleinere patrouillevaartuigen van de Koninklijke Marechaussee.
!!!! Ministerie van Veiligheid en Justitie
Het Korps Landelijke Politie Diensten (KLPD) valt onder het ministerie van Veiligheid en Justitie. Het KLPD heeft een aantal patrouillevaartuigen zoals de ''P42'' tot haar beschikking die, indien nodig, door de Kustwacht kunnen worden ingezet. Zij zijn zowel langs de Noordzeekust als op het IJsselmeer gestationeerd.
---
!! Antillen
!!!! Nieuwe naam Kustwacht
De Kustwacht Nederlandse Antillen en Aruba heeft een nieuwe naam. Tijdens de Rijksministerraad, die vrijdag 11 februari op Curaçao werd gehouden, is het jaarplan Kustwacht 2011 goedgekeurd, samen met de nieuwe officiële naam: Kustwacht voor het Koninkrijk der Nederlanden in het Caraïbisch Gebied (KWCARIB). De Engelse naam is Dutch Caribbean Coast Guard (DCCG?).
Aan een naamsverandering viel niet te ontkomen, omdat de Nederlandse Antillen vorig jaar werden opgeheven. Curaçao en Sint Maarten gaan - net als Aruba - binnen het Koninkrijk der Nederlanden verder als autonome landen, terwijl Bonaire, Saba en Sint Eustatius als gemeenten worden.
---
De Kustwacht Caribisch Gebied (KWCARIB) (Engels: Dutch Caribbean Coastguard) is de kustwacht voor Aruba, Curaçao, Sint Maarten en Caribisch Nederland.
In 1996 werd een zelfstandige kustwacht voor de Nederlandse Antillen en Aruba opgericht (NA&A CG). De huidige formele naam is "Kustwacht voor het Koninkrijk der Nederlanden in het Caribisch Gebied". Sinds de staatkundige hervormingen binnen het Koninkrijk der Nederlanden in 2010 opereert de dienst onder de huidige naam. Het personeel is voor een deel afkomstig van de Koninklijke Marine, maar wordt ook in eigen beheer opgeleid. De organisatie bestaat uit circa 210 lokale personeelsleden en 30 marinemensen. De Commandant der Zeemacht in het Caribisch Gebied (CZMCARIB) is de hoogstverantwoordelijke Nederlandse militair in de Caribische regio en tevens Directeur Kustwacht Caribisch Gebied.
Patrouillevaartuigen: ''Jaguar'', ''Panter'' en ''Poema''
De KWCARIB beschikt over een tweetal vliegtuigen van het type Bombardier Dash 8 die geleast zijn van het Canadese bedrijf Provincial Aerospace Ltd., een tweetal helikopters van het type Agusta Westland AW139 die geleast zijn van het Britse bedrijf Cobham, een drietal 'kotters' (Jaguar, Panter en Poema) van het type Damen Stan Patrol 4120 en een aantal kleine eenheden, waaronder 12 superrhibs van fabrikant Delta (UK). Naast deze organieke eenheden zijn er eenheden van de Koninklijke Marine, waaronder het stationsschip (met helikopter), die worden ingezet voor Kustwachttaken.
---
!!!!Kustwacht Caribisch Gebied
De kustwacht Caribisch Gebied valt onder beheer van de Nederlandse marine en maakt gebruik van diverse marine eenheden, zoals de Zr.Ms. Pelikaan en het stationsschip van de West.<br>
De kustwacht voert opsporingstaken, toezichthoudende- en dienstverlenende taken uit. Om dit te kunnen doen werkt de organisatie nauw samen met de Nationale Politie, Douane en vrijwillige redding organisaties.<br>
De kustwachtkotters houden zich bezig met het bestrijden van drugs- en mensensmokkel, visserij inspecties, milieucontrole en hulpverlening.
{{||$:/_ship_template}}
* <<slider "Duikboot KV 1920" Schepen447>>
{{||$:/_ship_template}}
* <<slider "Pelikaan-divisie 1923" Schepen445>>
* <<slider "Duikboot KVII 1934" Schepen102>>
{{||$:/_ship_template}}
* <<slider "Pelikaan-divisie 1923" Schepen445>>
{{||$:/_ship_template}}
* <<slider "Duikboot KX ca. 1930" Schepen100>>
{{||$:/_ship_template}}
* <<slider "Duikboot KXI ca. 1937" Schepen110>>
{{||$:/_ship_template}}
* <<slider "Duikboot KXIII 1926" Schepen101>>
{{||$:/_ship_template}}
* <<slider "Duikboot KXVIII 1935" Schepen086>>
[img width=350 [La Jamais Contente|Images/1899_Camille_Jenatzy.jpg]]<br>
//La Jamais Contente. Camille Jenatzy, 1899.<br>
Wereldsnelheidsrecord in 1899: 105.8 km/u.//
[img height=400 [La Jamais Contente|Images/1899_Camille_Jenatzy.jpg]]<br>
//La Jamais Contente. Camille Jenatzy, 1899.<br>
Wereldsnelheidsrecord in 1899: 105.8 km/u.//
{{||$:/_ship_template}}
* <<slider "Mijnenveger Lacomblé ca. 1971" Schepen458>>
Deelnemende landen, met de toegewezen nummerseries, zijn o.a.:
|Land |Nummerseries |h
|Argentinië |D: 1x, 2x; P: 3x, 4x; S: 2x, 3x; C: x; V: x|
|België |9xx; M: 4xx|
|Denemarken |N: 0xx; A/M/P: 5xx; F/S/Y: 3xx; L: 0xx|
|Duitsland |D: 1xx; F: 2xx; M: 10xx, 26xx; P: 61xx; A: 5x, 51x, 14xx; L: 76x|
|Frankrijk |R: 9x; C/D/S: 6xx; M/P/A: 6xx, 7xx; L: 9xxx|
|Griekenland |D/P: 0x, 2xx; A/F: 4xx; L/S/M: 1xx|
|Italië |5xx; M/A: 5xxx; P: 4xx; L: 9xxx|
|Nederland |8xx; Y: 8xxx|
|Noorwegen |F/S/M: 3xx; P: 9xx; L: 45xx|
|Portugal |F/M: 4xx; S: 1xx; P: 11xx0|
|Spanje |0x|
|Turkije |D/S: 3xx; F: 2xx; N: 1xx; A/M: 5xx; P: 1xx, 3xx, L: 4xx; Y: 1xxx|
|Verenigd Koninkrijk |R: 0x; D: 0x & 1xx; F: 0x, 1xx, 2xx; S: 0x, 1xx; M: 0x, 1xx, 1xxx, 2xxx; P: 1xx, 2xx, 3xx; L: 0x, 1xx, 3xxx, 4xxx; A: any|
<<<
''N.B.:''<br>De USA hebben hun eigen systeem, waaraan b.v. ook Australie mee doet.
<<<
Werd in 1940 in dienst gesteld als Hulpmijnenveger 15 (HMV15) en fungeerde als boeienschip. Op 2 maart 1942 werd het schip door de eigen bemanning tot zinken gebracht in Soerabaja. De Lawoe werd door de Japanners gelicht en op 27 september 1943 in dienst gesteld als hulponderzeebootjager 110. Op 5 maart 1945 werd het vaartuig door een geallieerde luchtaanval tot zinken gebracht in Straat Sapé op 10 mijl ten westen van Komodo. Het vaartuig werd nogmaals gelicht en na WWII zwaar beschadigd teruggevonden in Soerabaja. Het schip werd van de sterkte afgevoerd.
Luchtverdedigings en Commando Fregat
In 1962 omgebouwd tot duikvaartuig.
In 2005 werd overeenstemming bereikt met Letland over de verkoop van 5 schepen aan dat land. Het betreft de Alkmaar, Delfzijl, Dordrecht, Harlingen en Scheveningen.
|Overdracht |Mijnenjager |Nieuwe naam| Nieuwe registratie |h
| 2007 |Harlingen |''Imanta'' |M-04 |
|~|Scheveningen |''Viesturs'' |M-05 |
| 2008 |Dordrecht |''Talivaldis'' |M-06 |
|~|Delfzijl |''Visvaldis'' |M-07 |
| 2010 |Alkmaar |''Rūsiņš'' |M-08 |
''Liberty''-schepen waren vrachtschepen die gedurende WWII werden gebouwd in de USA volgens een eenvoudig standaardontwerp. Ze konden snel (gelast i.p.v. geklonken) en goedkoop in grote series gebouwd worden en werden het symbool van de industriële militaire massaproductie van de VS gedurende de oorlogsjaren. Zestien Amerikaanse scheepswerven bouwden tussen 1941 en 1945 2.751 libertyschepen.
ex IJM96, Aboyne (1908).<br>De trawler werd in 1940 gevorderd en verbouwd tot hulpmijnenveger. Nam deel aan veegoperaties in Britse wateren. Op 22 maart 1943 werd het schip uit dienst gesteld en overgedragen aan de Royal Navy. Na de oorlog ging het schip terug naar de eigenaar.
!! Lichte vaartuigen
Onder lichte vaartuigen wordt ingevolge de circulaire der zeemacht 2393b punt 2112 verstaan:
# Elk vaartuig van de Koninklijke marine, dat door enig schip der Koninklijke marine met eigen middelen aan boord kan worden gehesen en aldaar kan worden geplaatst, ongeacht of daartoe tevoren een of meer voorzieningen aan het vaartuig moet worden getroffen, met uitzondering van:
## redingsvlotten;
## rubbervlotten;
## aanleg- en werkvlotten;
# Sportzeiljachten, met uitzondering van zeezeiljachten.
De lichte vaartuigen zijn voorzien van een registratiemerk, bestaande uit twee letters en 1 + 4 cijfers (b.v. ''WM2-5201''). De eerste letter is steeds de ''W'' en geeft aan dat het vaartuig behoort tot het watertransportmaterieel der Koninklijke marine. De tweede letter geeft aan of het vaartuig voorzien is van een ingebouwde motor of niet: ''M'' met ingebouwde motor en ''R'' zonder ingebouwde motor. Het eerste cijfer geeft de catagorie aan waartoe het vaartuig behoort:
* WM1 motorsloep (commandantsloep)
* WM2 motorsloep (geen commandantsloep)
* WM3 motorwhaleboot
* WM4 motorschouw
* WM5 motorvlet
* WM6 motorjol
* WM7 sportzeiljacht (met ingebouwde motor)
* WR1 roei/zeilsloep
* WR2 whaleboot
* WR3 vlet
* WR4 jol van 14 voet
* WR5 jol van 10 voet
* WR6 sportzeiljacht
De twee volgende cijfers geven het bouwjaar van het vaartuig aan, terwijl de laatste twee cijfers aangeven het hoeveelste vaartuig, van de schepen van hetzelfde type en bouwjaar, het betrokken vaartuig is.
!! Lijsten met pennantnummers
<<tabs "[tag[pennant]sort[]]-$:/_pennantnummer_details_template" "Fregatten" "$:/state/tab/pennant">>
ex IJM54 (1919).<br>De trawler werd op 12 februari 1940 gevorderd en aangepast om dienst te doen als boeienlegger en als Boeienschip 2 in dienst gesteld. De boeienlegger kon niet ontkomen naar Engeland en viel op 14 mei in Duitse handen. Het schip is tijdens de oorlog in Duitse dienst verloren gegaan.
Dit is een dummy tiddler.
In 1963 verbouwd tot duikvaartuig, echter nooit als zodanig gebruikt.
<img src="Images/loadingwh8.gif">
!!! Logementsschip
De marine beschikte nauwelijks over kazernes en gebouwen buiten enkele gebouwen in Den Helder en was dus aangewezen op z.g. logementsschepen. Een groot deel van de grotere schepen die vanaf het vierde kwart van de negentiende eeuw niet meer geschikt werden geacht om een actieve rol te spelen in de landsverdediging, kregen een passieve rol toegewezen als logements- of accommodatieschip. Deze inactieve schepen werden ook wachtschepen genoemd.
<<w>>
!! Lohner-Porsche
De [[elektrische Lohner-Porsche's|Porsche]] waren zwaar, voornamelijk door het grote gewicht van de accu's. Om hieraan tegemoet te komen voorzag Porsche de elektrische auto van een benzinemotor die de - nu minder - accu's oplaadde, een z.g. serie-hybride zoals de Opel Ampera/Chevrolet Volt.<br>
Dit leidde - nog in 1900 - tot de <<popup "eerste hybride auto ter wereld" "Eerste hybride">> , de Lohner-Porsche 'Semper Vivus'.
!!! Lohner-Porsche Semper Vivus
Porsche had - met een puur elektrische auto - meegedaan aan de Semmering-Bergrennen race.<br>
Gebaseerd op deze raceauto ontwikkelde hij de <<popup "'Semper Vivus'" "Semper Vivus1">>.<br>Deze 'Semper Vivus' leek ook meer op een auto dan op een koets zoals de <<popup "Lohner-Porsche" "Lohner-Porsche1">>.<br>
Om het gewicht te verminderen - en de actie-radius te vergroten - verving hij een gedeelte van de accu's (een vermindering van 74 naar 44 cellen) door een benzinemotor. Of om precies te zijn 2 watergekoelde 1-cilinder De Dion-Bouton motoren, elk goed voor 1.85 kW en voorzien van een elektrische generator. De generatoren leverden ieder 20A bij 90V aan de motoren (en het surplus aan aan de accu's).
!!!Lohner-Porsche Mixte
De Semper Vivus was meer een prototype - een concept car - dan een auto geschikt voor serieproductie. Daarom ontwikkelde Porsche verder met als resultaat de <<popup "Lohner-Porsche 'Mixte'" "Lohner-Porsche_Mixte01A">>, een 4-persoons auto met voorin een Austrian Daimler 5.5 l, 18 kW, 4-cilinder motor. Maar het bleef een serie-hybride met voorwielaandrijving d.m.v. naafmotoren.<br>
De benzinemotor dreef een elektrische generator aan die onder de stoel gemonteerd was. De generator kon ook gebruikt worden om de benzinemotor te starten.<br>
De accu's werden tot een minimum beperkt: de 'Mixte' kon slechts enkele kilometers lopen op alleen de accu's, maar het totaalgewicht kon tot zo'n 1200 kg teruggebracht worden.<br>
Onder normale omstandigheden liepen de motor en generator met een constant toerental resulterend in een hoog rendement.
<<<
Het Lohner-Porsche's ontwerp werd door Boeing en NASA bestudeerd om de 'Maanwagen' (<<popup "Lunar Roving Vehicle" "LunarRover">>) van het Apollo project te ontwerpen.
<<<
<<imageh 1901_Lohner-Porsche_Mixte_Gaisbergrennen_2011.jpg 400>>
//Een Lohner-Porsche Mixte (ontwerp 1901) bij de 'Gaisbergrennen' in 2011.//
<<imageh 1901_Lohner-Porsche_Mixte_Gaisbergrennen_2011.jpg 250>>
//Lohner-Porsche 'Mixte', 1901.//
<<imageh Lohner-Porsche-Mixte01.jpg 400>>
//Lohner-Porsche hybride (raceauto?) met links een gedeelte van het motorblok en midden-links de generator, 1901.//
<<imageh Lohner-Porsche-Mixte02.jpg 400>>
//Lohner-Porsche hybride (raceauto?) met zicht op generator, 1901.//
<<imageh 1899_Lohner-Porsche-Elektromobil.jpg 400>>
//Porsche (Chaise/Voiturette), 1900.//
<<imageh 1900_Lohner-Porsche-Elektromobil.jpg 400>>
//Lohner-Porsche 'La Toujours Contente', 1900.<br>Gemaakt voor E.W. Hart, een rijtuigbouwer uit Luton Engeland, om mee te racen.//
[img height=300 [Foto/1900_Lohner-Porsche-Elektromobil.jpg]]<br>
//Lohner-Porsche 'La Toujours Contente', een raceauto, 1900.<br>
Gemaakt voor E.W. Hart, een rijtuigbouwer uit Luton Engeland.//
<<imageh 1900_Lohner-Porsche_Sempur_Vivus_01.jpg 400>>
//Replica Lohner-Porsche 'Sempur Vivus', 2011.//
<<imageh 1900_Lohner-Porsche_Sempur_Vivus_02.jpg 400>>
//Replica Lohner-Porsche 'Sempur Vivus', 2011.//
<<imageh Lohner-Porsche_Octagon_motor.jpg 400>>
//Lohner-Porsche 'Octagon' motor, toegepast in de 'Phaeton'.<br>
Opgehangen in schokdempers, 1899.//
<<imageh 1901_Semper_Vivus01.jpg 400>>
//Lohner-Porsche 'Semper Vivus', 1901.//
<<imageh 1903_Lohner-Porsche_Ferdinand-Porsche.jpg 400>>
//Ferdinand Porsche aan het stuur van een Lohner-Porsche hybride, 1903.//
<<imageh 1900_Lohner-Porsche_Sempur_Vivus_VA_meters.jpg 400>>
//Replica Lohner-Porsche 'Sempur Vivus', V/A meters, 2011.//
<<imageh 1900_Lohner-Porsche_Sempur_Vivus_motorblok.jpg 400>>
//Replica Lohner-Porsche 'Sempur Vivus', de 2 De Dion-Bouton motoren, 2011.//
[img height= 335 [Lohner-Porsche, 1899|Images/1899_Lohner-Porsche-Elektromobil_400.jpg]]<br>
//Lohner-Porsche (Chaise/Voiturette), 1900.//
[img[Lohner-Porsche brandweer|Images/1904_Lohner-Porsche_brandweer_Frankfurt.jpg]]<br>
//Lohner-Porsche van de brandweer in Frankfurt, 1904.//
[img[Lohner-Porsche ambulance|Images/1905_Lohner-Porsche_ambulance.jpg]]<br>
//Lohner-Porsche ambulance, 1905.//
[img[Lohner-Porsche vrachtauto|Images/1908_Lohner-Porsche_Speisetransportwagen.jpg]]<br>
//Lohner-Porsche vrachtauto voor voedseltransport, 1908.//
[img[Lohner-Porsche brandweerauto|Images/190x_Lohner-Porsche_brandweerauto.jpg]]<br>
//Lohner-Porsche brandweerauto, ca. 1905.//
<<imageh 1901_Lohner-Porsche_bus_Boedapest.jpg 400>>
//Lohner-Porsche bus. Boedapest, 1901.//
<<imageh 190x_Lohner-Porsche_koets.jpg 400>>
//Lohner-Porsche taxi?//
{{||$:/_ship_template}}
* <<slider "Doorsnedes monitoren ca. 1870" Schepen170>>
* <<slider "Rammonitor Luipaard ca. 1900" Schepen375>>
[img[Lunar Rover Vehicle|Images/1971_Apollo15LunarRover.jpg]]<br>
//'Lunar Rover Vehicle', 1971.//
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Luymes 2013" Schepen277>>
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Lynx 1907" Schepen448>>
In 1912 werd ''Lynx'' hernoemd naar ''Los'' vanwege de te bouwen torpedoboot [[Lynx (1913)]].
{{||$:/_ship_template}}
* <<slider "Torpedobootjagers Hermelijn en Lynx 1913" Schepen444>>
{{||$:/_ship_template}}
* <<slider "Fregat Lynx 1956" Schepen221>>
* <<slider "Italiaans fregat Aquila, voormalige Lynx ca. 1970" Schepen220>>
Italiaanse Albatros-klasse.<br>Verkregen via <<popup MDAP MDAP>>.<br>Buitenbeentje binnen onze marineschepen.
De Duitse duikboot UC-8 - ingericht als mijnenlegger - strandde in 1915 bij Terschelling. Hij werd vlot getrokken en geïnterneerd en daarna gekocht van Duitsland.
{{||$:/_ship_template}}
* <<slider "Duikboot M1 (ex Duitse UC-8) ca. 1918" Schepen098>>
{{||$:/_ship_template}}
* <<slider "Mijnenveger 'Mijnenveger 1' 1918" Schepen165>>
* <<slider "Mijnenveger M1 1918" Schepen157>>
Gebouwd als sleepboot Marie I. Het schip werd door Nederlandse marine aangekocht en omgebouwd tot mijnenveger. Het schip werd datzelfde jaar als Mijnenveger 1 in dienst genomen, daarmee was het schip de eerste mijnenveger in dienst bij de Nederlandse marine. Later werd de naam van het schip veranderd in M1.<br>Om te voorkomen dat het schip in Duitse handen zou vallen werd het op 14 mei 1940 in de visserijhaven van IJmuiden tot zinken gebracht.
Gebouwd als sleepboot Marie II. Het schip werd door Nederlandse marine aangekocht en omgebouwd tot mijnenveger. Het schip werd datzelfde jaar als Mijnenveger 2 in dienst genomen. Later werd de naam van het schip veranderd in M2. Op 13 mei 1940 liep de M2 op een mijn in het Noordzeekanaal ter hoogte van Velsen.
Gebouwd als sleepboot Anna. Het schip werd door Nederlandse marine aangekocht en omgebouwd tot mijnenveger. Het schip werd datzelfde jaar als Mijnenveger 3 in dienst genomen. Later werd de naam van het schip veranderd in M3.<br>Op 14 mei 1940 werd het als blokschip naast het stoomschip Jan Pieterszoon Coen tussen de pieren van IJmuiden tot zinken gebracht.
Het schip is gebouwd in opdracht van het Russisch Gouvernement van Sint Petersburg. De kiel werd in december 1915 gelegd en het nog onvoltooide schip werd in augustus 1916 te water gelaten. Omdat na de Russische Revolutie betalingsproblemen ontstonden, werd de opdracht echter geannuleerd. In mei 1917 werd het schip verkocht aan de rederij Wijsmuller die het onder de naam Pauline in de vaart nam. In 1918 werd het schip door de Nederlandse marine aangekocht en omgebouwd tot mijnenveger en onder de naam Mijnenveger 4 in dienst genomen. Later werd de naam van het schip veranderd in M4.<br>Op 14 mei 1940 werd het schip in het Zuiderkanaal tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Mijnenjager Maassluis ca. 1998" Schepen465>>
'MAC ship' (Merchant Aircraft Carrier)<br>
Drie onder Nederlandse vlag varende Shell tankers (Gadila, Macoma en Miralda) werden omgebouwd tot MAC-schip.<br>
Deze MAC-schepen hielden de status van koopvaardijschip; alleen het personeel voor de vliegtuigen en het onderhoud was Nederlands marinepersoneel.<br>
Gadila en Macoma bleven onder Nederlandse vlag varen en waren zo de eerste vliegdekschepen.
{{||$:/_ship_template}}
* <<slider "Vliegdekschip Macoma 1945" Schepen166>>
{{||$:/_ship_template}}
* <<slider "Mijnenveger Mahu ca. 1971" Schepen459>>
<a href="mailto: t.gerner@upcmail.nl"><img src="Familie/e-mail-icon.jpg" x-maintain-ratio="TRUE" alt="mailto: Ton Gerner," width="auto" height="25px" border="0"></a>
<a href="mailto: t.gerner@upcmail.nl" title="mailto: Ton Gerner">t.gerner@upcmail.nl</a>
{{||$:/_ship_template}}
* <<slider "Torpedoboot Makjan 1914" Schepen139>>
{{||$:/_ship_template}}
* <<slider "Mijnenjager Makkum 2007" Schepen466>>
{{||$:/_ship_template}}
* <<slider "Hulpmijnenveger Maria Elizabeth ca. 1942" Schepen432>>
ex IJM114 (1929).<br>De trawler werd in 1941 in Engeland gevorderd en verbouwd tot hulpmijnenveger. Het schip nam deel aan veegoperaties in de zeeën rond Groot-Brittannië. Op 24 maart 1944 werd het schip uit dienst gesteld en uitgeleend aan de Royal Navy. Na de oorlog werd de trawler teruggegeven aan de eigenaar.
ex IJM7, Irene Wery (1914).<br>De trawler werd op 4 september 1939 gevorderd en ingericht om te fungeren als boeienschip (Boeienlegger 3). In de meidagen van 1940 kon het schip ontkomen naar Engeland waar het werd omgebouwd tot hulpmijnenveger. Nam deel aan mijnenveegoperaties in de zeeën rond Groot-Brittannië. Op 7 april 1941 raakte het schip zwaar beschadigd als gevolg van een mijnexplosie maar kon gerepareerd worden. Op 30 april 1943 uit dienst gesteld en overgedragen aan de Britse marine. Na de oorlog ging het schip terug naar de oorspronkelijke eigenaar.
ex IJM1 (1925)<br>De Maria van Hattum werd op 2 april 1940 gevorderd, omgebouwd en als Hulpmijnenveger 6 in dienst gesteld. Op 14 mei werd de aangepaste trawler te IJmuiden door de eigen bemanning tot zinken gebracht. Op last van de bezetter werd het schip gelicht en in gebruik genomen als bewakingsvaartuig. Het vaartuig is tijdens de oorlog verloren gegaan.
!! Marine Luchtvaart Dienst (MLD)
//Bron: [[Wikipedia|https://nl.wikipedia.org/wiki/Marine_Luchtvaartdienst]].//
De eerste plannen voor een vliegdienst voor de Nederlandse marine ontstonden in 1913 en waren gericht op het verbeteren van de mogelijkheden voor verkenningsvluchten. In juli 1914 kreeg de marine haar eerste vliegtuig, een nieuwe [[Farman HF.22]], om marinepiloten op te leiden tot nautische vlieger. Samen met de LVA (vliegdienst van de Koninklijke Landmacht) oefende men vanaf de Vliegbasis Soesterberg. In april 1916 verhuisde het marinevliegtuig naar het Marinevliegkamp Schellingwoude en in 1917 nogmaals naar het nieuwe marinevliegkamp De Mok op Texel.
Op 18 augustus 1917 werd de Marine Luchtvaart Dienst (MLD) formeel opgericht. In die tijd was de gedachte dat een aparte vliegdienst voor de marine gerechtvaardigd was doordat maritieme vliegers maritieme capaciteiten moesten bezitten. Nog hetzelfde jaar verhuisde de MLD eerst naar Veere en vervolgens naar Vliegveld de Kooy bij Den Helder. Aanvankelijk werd de MLD vooral voorzien van Nederlandse vliegtuigen van [[Van Berkel]], [[Fokker]], [[Koolhoven]] en [[Spyker]]. Vanaf 1926 deden ook buitenlandse types hun intrede. Hieronder de bekende [[Dornier Wal|Dornier Do J I Wal]] die vooral in Nederlands-Indië werd ingezet, vanaf vliegkamp Tandjong Priok (Java; vanaf 1919 in gebruik) en vliegkamp Morokrembangan (Soerabaja; vanaf 1926 in gebruik).
!!! Tweede Wereldoorlog
<<tabs "
[[MLD WWII Europa]]
[[MLD WWII - Ned-Indië]]
" "
[[MLD WWII Europa]]
" "" "
">>
<hr>
Het <<popup "860 squadron" "860 squadron">> deed met Fairey Swordfish toestellen dienst op de hulpvliegdekschepen [[Macoma|Macoma (1944)]] en [[Gadila|Gadila (1944)]].<br>
<<tabs "
[[Informatie marineschepen]]
[[Databank marineschepen]]
" "
[[Informatie]]
" "" "">>
<<imageh Aantal_marineschepen_1945-heden.jpg 400>>
//Aantal marineschepen in de periode 1945 - heden.//
!! Marinevliegkamp & luchthaven Schellingwoude
<<tabs "
[[Marinevliegkamp & luchthaven Schellingwoude_info]]
[[Schellingwoude_01]]
[[Schellingwoude_06]]
[[Schellingwoude_02]]
[[Schellingwoude_07]]
[[Schellingwoude_08]]
[[Schellingwoude_09]]
[[Schellingwoude_10]]
[[Schellingwoude_03]]
[[Schellingwoude_04]]
[[Schellingwoude_05]]
[[Foto's Schellingwoude]]
" "
[[]]
" "" "
tc-vertical
">>
!!Marinevliegkamp & luchthaven Schellingwoude
!!!! 1876 - 1940
Bij de aanleg van het Noordzeekanaal (geopend in 1876) was het nodig de rechtstreekse verbinding van het IJ met de Zuiderzee af te sluiten. Daartoe werd een afsluitdijk aangelegd met aan de noordzijde de Oranjesluizen en daardoor werd het IJ het 'Afgesloten IJ'.<br>
Haaks op deze afsluitdijk werd een 4300m lange strekdam aangelegd om het dichtslibben van de vaargeul zo veel mogelijk te voorkomen. Door de aanleg van een tweede strekdam werd een wateroppervlakte van 100 ha gevormd waarin baggerspecie opgeslagen kon worden. En zo ontstond het Zeeburgereiland.<br>
De schietbanen aan de St. Anthoniesdijk moesten verdwijnen en werden in tussen 1907 en 1910 verplaatst naar de zuidkant van het Zeeburgereiland.<br>
In 1910 werden op een hoger gelegen deel een wachterswoning, een schuilloods (een houten loods als manschappenverblijf), een schijvenloods (een metalen loods voor schietschijven) en een toiletgebouw geplaatst.<br>
Vanaf 1916 was het Marinevliegkamp Schellingwoude aan de noordzijde gevestigd. Aanvankelijk was er één hangarloods met een hellingbaan om de watervliegtuigen in de hangar te brengen. Een jaar later werd vliegkamp 'De Mok' (Texel) in gebruik genomen.<br>
In 1922 werd het vliegkamp voorzien van een betonnen hangarloods en hellingbaan.<br>
In 1928 werd het vliegkamp een algemene luchthaven (zowel civiel als militair) en daarmee de enige luchthaven voor civiele watervliegtuigen.<br>
In 1932 landden er zes burgervliegtuigen, in 1933 negen. Op 2 november 1933 maakte Charles Lindbergh een tussenstop tijdens zijn rondvlucht door Europa ter promotie van het watervliegtuig.<br>
Het Ministerie van Defensie wilde in 1933 het militair gebruik geheel beëindigen, maar in 1938 werd het vliegkamp weer in dienst gesteld.<br>
Fokker maakte gebruik van de luchthaven voor testdoeleinden en vanaf september 1939 ook voor de eindmontage van de dan nieuwe Fokker T.VIII W.<br>
In augustus 1939 waren er drie Fokker C.XI W vliegtuigen gestationeerd. Op 10 mei 1940 was alleen een vliegklaar Fokker T.VIII W torpedovliegtuig aanwezig.
!!!! 1940 - 1945
Eind mei 1940 werd door de Duitsers begonnen met de inrichting van een vliegtuigbasis. Er werd een 'Befehlsstand' bunker gebouwd met observatieopeningen naar het oosten, met zicht op het start- en landingsgebied van ca. 2.5 bij 2.5 km op het ~Buiten-IJ.<br>
Fliegerhorst Schellingwoude werd uitgebouwd tot de grootste basis voor watervliegtuigen en -boten in Nederland. Luchtfoto's van de RAF tonen 16 aanlegsteigers en maximaal 25 vliegtuigen. Het moet gezien het grote aantal verliezen door ongelukken en gevechtshandelingen, intensief gebruikt zijn.
!!!! Na 1945
Na de 2e Wereldoorlog is de luchthaven niet meer als zodanig in gebruik geweest. Wel heeft de Landmacht nog jaren gebruik gemaakt van de Duitse gebouwen.
Zie ook:
* <<slider "Bunkerinfo: Seefliegerhorst Schellingwoude" Bunkerinfo>>
* <<slider "Stelling van Amsterdam: Navigationdrescheibe" Navigationdrescheibe>>
!! Marinevliegkamp De Kooy
<<tabs "
[[Marinevliegkamp De Kooy_info]]
[[De Kooy01]]
[[Foto's De Kooy]]
" "
[[]]
" "" "
tc-vertical
">>
!! Marinevliegkamp De Kooy
De Kooy werd gesticht in 1918. Den Helder had al een vliegkamp voor watervliegtuigen in de Mokbaai op Texel, maar er was ook een locatie nodig voor vliegtuigen die op de grond landen.
Op De Kooy werden de jagers, jachtbommenwerpers en verkenners van de marine gestationeerd. Net als de opleidingen voor de MLD (niet alleen voor vliegers, maar ook voor vliegtuigmakers). In de jaren ‘40 gebruikte de bezetter het vliegkamp. Het werd door de geallieerden zo erg gebombardeerd dat het in 1944 werd gesloten.
Eind jaren ‘40 werd De Kooy weer opgebouwd. In 1960 kreeg het een betonnen start- en landingsbaan.<br>Vanaf de jaren ‘80 wordt het vliegkamp gedeeld met civiele gebruikers.
!! Marinevliegkamp De Mok
<<tabs "
[[Marinevliegkamp De Mok_info]]
[[De Mok02]]
[[De Mok01]]
[[De Mok03]]
[[Foto's De Mok]]
" "
[[]]
" "" "
tc-vertical
">>
!! Marinevliegkamp De Mok
Marinevliegkamp 'De Mok' was een vliegkamp voor watervliegtuigen van de MLD in de Mokbaai op Texel. Het werd officieel op 21 augustus 1917 in gebruik genomen. Tot de opening van vliegkamp 'De Kooy' werd het ook gebruikt voor 'landvliegtuigen.
<<<
Marinemensen van de MLD werden eerst opgeleid tot vlieger op vliegbasis Soesterberg, waarna ze hun watervliegopleiding op 'De Mok' voltooiden. Dit duurde tot oktober van 1918 toen De Kooy in gebruik werd genomen en de opleiding van Soesterberg naar 'De Kooy' verhuisde.
<<<
In WWII werd het kamp gebruikt als steunpunt voor de Seenotdienst, de reddingsdienst voor te water geraakte piloten van de Luftwaffe.
Na de oorlog was het vliegkamp volledig verwoest en werd het niet meer opgebouwd, mede omdat de rol voor watervliegtuigen was uitgespeeld.
<<<
Sinds 1949 is de Mok in gebruik als amfibisch trainingskamp. Het Korps Mariniers gebruikt dit deel van Texel voor het doen van landingsoefeningen en voor de basistraining van de mariniers.
<<<
!! Marinevliegkamp Souburg - vliegveld Vlissingen
<<tabs "
[[Marinevliegkamp Souburg_info]]
[[Souburg02]]
[[Souburg01]]
[[Foto's Souburg_Vlissingen]]
" "
[[]]
" "" "
tc-vertical
">>
!! Marinevliegkamp Souburg (vliegveld Vlissingen)
Vanwege de mobilisatie in 1914 besloot de Koninklijke Marine dat er in de buurt van de marinebasis in Vlissingen een vliegkamp moest komen. In 1916 nam de marine het vliegveld in Vlissingen over van de landmacht en werd het gebied uitgebreid tot 30 hectare. Er werd een marinevliegtuig gestationeerd, waarvoor een eenvoudige houten loods werd gebouwd. Het gebeurde in die oorlogsjaren regelmatig dat vliegtuigen verdwaalden en boven Zeeland terechtkwamen. Daarom werd het vliegveld al snel aangewezen als plek voor vliegtuigen om noodlandingen te maken en voor de voorlopige opslag van neergekomen vliegtuigen. De marine had plannen voor de bouw van een vliegtuigloods en deze waren reeds aanbesteed, toen in november 1918 de wapenstilstand werd gesloten en de Eerste Wereldoorlog eindigde. Hierdoor verdween de interesse in het vliegveld; het marinevliegkamp is noch afgebouwd, noch officieel door de Marine in dienst gesteld. Na 1918 is het weer teruggegeven aan het Departement van Waterstaat, dat er later een hangar op liet bouwen.<br>
In 1922 veranderde de minister van Marine de naam van het vliegveld van 'Souburg' naar 'Vlissingen'. In 1926 wordt het vliegveld opengesteld voor burger- en militair vliegverkeer. De KLM opent daarna enkele binnenlandse lijnen.<br>
Per 22 augustus 1939 worden de binnenlandse lijndiensten gestaakt. Alle vliegvelden worden door de Nederlandse Luchtmacht in gebruik genomen vanwege de oorlogsdreiging. Op het vliegveld Vlissingen wordt de militaire vliegschool van de LVA, voor de eerste opleiding, gevestigd.
<<<
Het vliegveld lag ten noorden van Vlissingen en werd aan westelijke zijde begrensd door het Kanaal door Walcheren. Het werd tijdens WWII verwoest.<br>Op de plek van het voormalige vliegveld Vlissingen verrees na de oorlog de wijk Westerzicht.
<<<
!! Marinevliegkamp Veere
<<tabs "
[[Marinevliegkamp Veere_info]]
[[Veere02]]
[[Veere01]]
[[Foto's Veere]]
" "
[[]]
" "" "
tc-vertical
">>
!! Marinevliegkamp Veere
Nadat de Nederlandse overheid in oktober 1917, in de verwachting van een naderende luchtstrijd, besloot tot bouwen van een vliegkamp met helling voor watervliegtuigen volgde een golf van protest. De bevolking vreesde dat Veere daarmee mikpunt van bombardementen zou worden. Het protest verhinderde de komst van het vliegkamp echter niet. December 1917 opende vliegkamp Veere de poort. Door bezuinigingen werd het al snel na het eindigen van WWI weer gesloten.<br>
In de periode 1919 en 1926 vestigde zich een dependance van de N.V. Vliegtuigenfabriek (Fokker) in het toen leegstaande vliegkamp. Daarna stootte de Marine in 1927 het complex af.<br>
Ondanks dat de marinehaven niet meer actief was werd Veere in de Luchtbeschermingswet van 1936 aangewezen als een belangrijke locatie met hoogste categorie van bescherming (vanwege de watervliegtuigloodsen en de mijnenloods). In 1939, vlak voor het uitbreken van de Tweede Wereldoorlog werd het marinevliegkamp gereactiveerd.<br>
In 1940 was Veere een steunbasis voor de MLD. Er was toen slechts sprake van een afmeerplaats (voor watervliegtuigen), een steiger, een loods en enkele kleine functionele gebouwtjes.
ex-MMS227.<br>Tijdens mijnenveegoperaties op 20 mei 1944 is het schip op de Noordzee op een akoestische mijn gelopen en verloren gegaan.
ex-MMS54 (34?)Ter vervanging van de verloren gegane [[Marken (1943)]].<br>
In 1955 werd de mijnenveger omgebouwd tot duikvaartuig (A899).
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Marnix 1948" Schepen231>>
* <<slider "Fregat Marnix ca. 1955" Schepen232>>
Ex-Britse torpedoboot ''Garland''. In december 1947 werd de Garland (H37) door de Koninklijke Marine aangekocht en als ''Marnix'' in dienst gesteld. Op 5 januari 1948 kwam het schip te Amsterdam, waar het bij de NDSM werd verbouwd tot varend instructieschip van de onderzeebootbestrijding en opleidingsschip voor de technische opleidingen. Op 16 januari 1950 opnieuw in dienst gesteld.<br>
In 1952 werd de Marnix als fregat geklassificeerd.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Marsdiep ca. 1948" Schepen449>>
* <<slider "Mijnenveger Marsdiep 1954" Schepen451>>
Oorspronkelijk Britse BYMS 2038 (in US gebouwd).<br>
{{YMS47}}<br>1957 - 1962 duikvaartuig.
{{||$:/_ship_template}}
* <<slider "Pantserschip Marten Harpertszoon Tromp, ca, 1910" Schepen116>>
{{||$:/_plane_template}}
* <<slider "Martin JRM-3 Mars 1949" Vliegtuig144>>
* <<slider "Martin JRM-3 Mars 2006" Vliegtuig143>>
* <<slider "Martin JRM-3 Mars 2015" Vliegtuig145>>
In eerste instantie ontworpen als patrouillevliegboot; later gewijzigd in transportvliegtuig.<br>
In totaal zijn er slechts 7 gebouwd, waarvan er 5 (Marianas Mars, Philippine Mars, Marshall Mars, Caroline Mars en Hawaii Mars) in actieve dienst bij de US Navy zijn geweest (1 - Marshall Mars - verloren in 1950).<br>
In 1959 werden de resterende 4 - inclusief een grote voorraad reserveonderdelen - verkocht aan een Canadese maatschappij (Forest Industries Flying Tankers (FIFT)), die ze tot blusvliegtuigen liet ombouwen.<br>
Een vliegtuig (Marianas Mars) crashte in 1961 tijdens blusactiviteiten, een tweede vliegtuig (Caroline Mars) werd in 1962 vernield door een orkaan.<br>
De twee resterende vliegtuigen (Hawaii Mars & Philippine Mars) vlogen tot verder zonder ongelukken en werden in 2007 verkocht aan Coulson Forest Products.<br>
In 2012 werd de Philippine Mars uit dienst genomen en klaar gemaakt om naar een museum te gaan; de originele US navy beschildering werd aangebracht.<br>
In 2013 kondigde het provinciebestuur van British Columbia aan dat het contract over het gebruik van de Hawaii Mars niet werd verlengd. Hawaii Mars staat nu te koop voor $3 miljoen,
<<<
''N.B.:''
* In 2015 kreeg Coulson een contract om Chinese piloten te trainen. Als voorbereing op het vliegen met het nieuwe Chinese amfibische vliegtuig AVIC TA-600
* In 2015 sloot het provinciebestuur van British Columbia een maandcontract voor het gebruik van Hawaii Mars
<<<
{{||$:/_plane_template}}
* <<slider "Martin P5M-1 1954" Vliegtuig217>>
* <<slider "Martin P5M-2 1967" Vliegtuig197>>
Geboouwd als opvolger van de Martin PBM-5A Mariner.<br>
In gebruik bij US Navy en US Coast Guard.<br>
In 1951 werd een redesign gedaan; belangrijkste optische verschil de 'T'-staart.<br>
De Marlin was de laatste vliegboot in dienst van de US Navy (1967).
{{||$:/_plane_template}}
* <<slider "Martin Mariner 1956" Vliegtuig116>>
* <<slider "Martin Marine ca. 1957" Vliegtuig112>>
* <<slider "Serie Martin Mariner's ca. 1957" Vliegtuig115>>
{{||$:/_plane_template}}
* <<slider "Martin R 1917" Vliegtuig183>>
* <<slider "Martin R 1917" Vliegtuig218>>
De MLD kocht 2 van deze toestellen, die in 1917 werden geleverd. Ze kwamen in onderdelen aan en werden op marinevliegkamp Schellingwoude geassembleerd. Toen vliegkamp De Mok in gebruik werd genomen, zijn de toestellen daar naar overgebracht.<br>
Eind 1919 werden ze alweer buiten dienst gesteld.
{{||$:/_plane_template}}
* <<slider "Martin S 1917" Vliegtuig154>>
* <<slider "Martin S 1917" Vliegtuig168>>
* <<slider "Martin S ca. 1918" Vliegtuig135>>
Het model S was het eerste en enige ontwerp van Donald Douglas voor Martin.
!! Martin
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[S|Martin S]] |{{Martin S!!soort}} | 4| J-1 - J-4 | {{Martin S!!per}} |
|[[PBM-5|Martin PBM-5A Mariner]]|{{Martin PBM-5A Mariner!!soort}}| 17| P-300 - P-316 | {{Martin PBM-5A Mariner!!per}} |
* <<slider "Registratiegegevens Martin S" "Registratiegegevens Martin S">>
* <<slider "Registratiegegevens Martin PBM-5" "Registratie Martin Mariner PBM-5">>
|Type |rol |opmerkingen |h
|[[JRM-3 Mars|Martin JRM-3 Mars]]|{{Martin JRM-3 Mars!!soort}}||
|[[P5M-2 Marlin|Martin P5M-2 Marlin]]|{{Martin P5M-2 Marlin!!soort}}||
{{||$:/_ship_template}}
* <<slider "Monitor Matador ca. 1900" Schepen259>>
Eindelijk toch een schip met de naam ''Matador'', zie ook [[Guinea (1870)]] en [[Koning der Nederlanden (1877)]].
{{NI}}<br>In 1916 instructievaaruig voor 'Kweekschool voor Inlandse Schepelingen'.
Het ''Mutual Defense Aid Program'' of ''Mutual Defense Assistance Programme'' (''MDAP'') werd na WWII door de USA gestart om Europese landen te assisteren bij het opbouwen van hun strijdmachten.<br>
Tussen 1948 en 1954 is hieraan ca. 30 miljard dollar uitgegeven door de USA. Hieronder was begrepen:
* Het leveren van goederen (voor een deel uit overbodig geworden voorraad).
* Het financieren van projecten.
* Het opleiden van personeel.
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Medusa ca. 1911" Schepen429>>
* <<slider "Mijnenlegger Medusa ca. 1915" Schepen144>>
Tijdens de meidagen van 1940 was het schip actief met het leggen van sluitversperringen in het Schulpengat, waarna werd uitgeweken naar Engeland. Het schip heeft aldaar dienst gedaan als depot- en wachtschip. Na terugkeer in Nederland heeft het als logementschip gefungeerd en werd daarna verbouwd tot mijnenveegwerkschip ten behoeve van de mijnenveegsquadrons.<br>
In 1964 uit dienst gesteld.
!! Menubalk
​{{Menubalk-image}}
De menubalk bevat:
* De Home oftewel thuisknop {{$:/core/images/home-button}} herstelt de situatie zoals die is direct na opstarten van 'Techniek'
* De vliegtuigfotoknop {{$:/_new_plane_icon}} toont een willekeurige foto van een vliegtuig
* De scheepsfotoknop {{$:/_new_ship_icon}} toont een willekeurige foto van een marineschip
* De menu's `Algemeen »`, `Hulp »` en `Techniek`. Klikken op een van deze menu's opent een submenu met meerdere keuzes.
**Klik op een keuze om de gewenste tiddler te openen<br>(de tiddler verschijnt dan als tab in de <<popup "navigatiebalk" "Navigatiebalk-image">>).
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
Werd in 1941 in dienst gesteld als Hulpmijnenveger 10 (HMV10).<br>
De Smeroe, Merbaboe en Rindjani voeren op 3 maart 1942 het Westervaarwater bij Soerabaja uit met bestemming Broome West-Australië, waar de drie scheepjes op 10 maart aan kwamen. Vanuit Broome gingen de hulpmijnenvegers verder naar Fremantle waar zij gedurende de rest van de oorlog ingezet werden als patrouillevaartuigen en mijnenvegers.<br> Na terugkeer uit Australië werd het scheepje ingedeeld als patrouillevaartuig bij de zee- en kustbewakingsdienst in station Tandjong Priok. In december 1949 werd de Merbaboe overgedragen aan Indonesië.
{{||$:/_ship_template}}
* <<slider "Torpedowerkschip Mercuur ca. 1900" Schepen267>>
{{||$:/_ship_template}}
* <<slider "Torpedowerkschip Mercuur 1939" Schepen268>>
* <<slider "Torpedowerkschip Mercuur 1970" Schepen266>>
{{||$:/_ship_template}}
* <<slider "Torpedowerkschip Mercuur 1983" Schepen218>>
Na de uitdienstneming van mijnenveger / escorteschip [[Onverschrokken (1954)]] werd het schip in 1973 verbouwd tot torpedowerkschip en hernoemd tot ''Mercuur (A856)''.
{{||$:/_ship_template}}
* <<slider "Torpedowerkschip Mercuur 2017" Schepen207>>
{{||$:/_ship_template}}
* <<slider "Vliegtuigmoederschip Merel 1935" Schepen440>>
Werd ingezet als stationschip vanuit Koepang, Timor. Na de militarisering werd de Merel afgelost door de [[Canopus (1915)]] en in Soerabaja omgebouwd tot vliegbootmoederschip. Daarna ging zij naar station Sedanau, op de Natoena-eilanden tussen Noord-Borneo en Singapore, om op toerbeurt toe te zien op de toegang tot Nederlands Oost-Indië vanuit de Zuidchinese Zee. In februari 1942 werd het in die regio te gevaarlijk en werd de Merel teruggeroepen naar Tjilatjap van waaruit het schip ingezet werd bij de Bewakingsdienst West-Java.<br>
Op 28 februari 1942 bevond de Merel zich in de Bantam-baai ten noorden van Tandjong Priok. Omdat West-Java ingesloten was door Japanse schepen kon de Merel niet meer ontkomen en werd de volgende dag door de eigen bemanning als blokschip tot zinken gebracht voor de toegang van de 2e en de 3e Binnenhaven van Tandjong Priok.
Eind jaren '30 werden de drie schepen van het type Merel omgebouwd tot moederschepen voor vliegboten. Deze verbouwing bestond onder andere uit het aanbrengen van vliegtuigbenzinetanks, die schuin buitenboord gedraaid konden worden om bij een eventuele brand in zee te kunnen dumpen, en het inrichten van een speciale werkplaats voor vliegtuigmonteurs.
!! Merken
<<tabs "[[Merken watervliegtuigen]] [[Merken landvliegtuigen]]">>
!! 'Landvliegtuigen' MLD
Naast de watervliegtuigen waren er andere vliegtuigen bij de MLD (zoals lesvliegtuigen en verkenners) die een 'normaal' onderstel hadden.
<<tabs "[tag[Merk]sort[]]" "" "" "tc-vertical">>
!! Watervliegtuigen
<<tabs "[tag[Watermerk]sort[]]" "" "" "tc-vertical">>
{{||$:/_ship_template}}
* <<slider "Rivierkanonneerboot Merva ca. 1893." Schepen345>>
Gebouwd door het marine-etablissement in Soerabaja. Veel daar gebouwde schepen waren instabiel.
Motor Gun Boat
<style>
html .tgc-tooltip .tgc-tooltiptext {
min-width: 200px;
}
</style>
{{||$:/_ship_template}}
* <<slider "Michiel Gardeijn ca. 1910" Schepen093>>
|borderless|k
|K1 | |Michiel Gardeijn|
|K2 ||Christiaan Cornelis|
|K3 ||Willem Warmont|
De Mico was een moderne sleepboot die in 1941 gevorderd werd in Curaçao en als hulpmijnenveger en patrouillevaartuig in gebruik genomen werd.<br>Het schip deed dienst in Antilliaanse en Surinaamse wateren. In 1945 keerde de aangepaste sleper terug naar Nederland en werd uit dienst gesteld en teruggegeven aan de oorspronkelijke eigenaar in juni 1946.
{{||$:/_ship_template}}
* <<slider "Mijnenjager Middelburg 2010" Schepen179>>
!!! Mijnenjager
Een vaartuig ingericht voor het opsporen en vernietigen van zeemijnen.<br>
Anders dan bij vegen, waarbij men met diverse soorten veegtuig een gebied mijnenvrij probeert te maken door het 'blind' te vegen, wordt bij de mijnenjacht met behulp van sonar actief naar mijnen gezocht.
<<w>>
!!! Mijnenlegger
Een vaartuig ingericht voor het leggen van mijnen.
<<w 400px>>
!!! Mijnenveger
Een vaartuig ingericht voor het opruimen (vegen) van zeemijnen.
<<w 480px>>
<$tiddler tiddler=<<currentTab>>>
{{||$:/_pennantnummer_template}}
</$tiddler>
<!--
1) Kloon $:/_pennantnummer_details_template
2) Hernoem tiddler tot 'Schepen' (b.v. Fregatten)
3) Vervang in veld 'filter' de 'C' (voor kruisers) door het bijbehorende voorvoegsel toe (voor fregatten 'F')
<<penlinks filter char>>
vereist in TW5.1.17 $:/core/modules/filters/regexps.js
-->
! [[Mine warfare ships]]
!! Minelayers
<br>
# ''Hydra'' minelayers (1911 - 1912)
#* [[Hydra (1912)]]
#* [[Medusa (1911)]]
# ''Van Meerlant'' minelayers (1922)
#* [[Van Meerlant (1922)]]
#* [[Douwe Aukes (1922)]]
# [[Pro Patria (1923)]] minelayer
# [[Krakatau (1924)]] minelayer
# [[Nautilus (1930)]] minelayer
# [[Rigel (1931)]] minelayer
# ''Prins van Oranje'' minelayers (1932)
#* [[Prins van Oranje (1932)]]
#* [[Gouden Leeuw (1932)]]
# [[Jan van Brakel (1936)]] minelayer
# [[Willem van der Zaan (1939)]] minelayer
# ''Ram'' minelayers
#* `Ram` nieuwbouw {{GM}}
#* `Regulus` nieuwbouw {{GM}}
# Mijnenlegger I minelayer (eind 1941 in Sorabaja gestart met bouw, nooit afgebouwd)
!! Minesweepers
<br>
# ''NR.1'' minesweepers
#* [[M1 (1918)]] (ex-Marie I)
#* [[M2 (1918)]] (ex-Marie II)
#* [[M3 (1918)]] (ex-Anna)
#* [[M4 (1918)]] (ex-Pauline)
# ''A'' minesweepers (1930)
#* [[A (1930)]]
#* [[B (1930)]]
#* [[C (1930)]]
#* [[D (1930)]]
# ''Jan van Amstel'' minesweepers (1937, 1940/1946)
#* [[Jan van Amstel (1937)]]
#* [[Pieter de Bitter (1937)]]
#* [[Abraham Crijnssen (1937)]]
#* [[Eland Dubois (1937)]]
#* [[Willem van Ewijck (1937)]]
#* [[Pieter Florisz (1937)]]
#* [[Jan van Gelder (1937)]]
#* [[Abraham van der Hulst (1937)]]
#* [[Abraham van der Hulst (1946)]] (ex-Willem van Ewijck)
# ''Alor'' auxiliary minesweepers (1938)
#* [[Alor (1939)]] {{GM}}
#* [[Aroe (1939)]] {{GM}}
#* [[Bantam (1939)]] {{GM}}
#* [[Bogor (1939)]] {{GM}}
#* [[Ceram (1939)]] {{GM}}
#* [[Cheribon (1939)]] {{GM}}
# ''Djember'' auxiliary minesweepers (1941, 1943/1945)
#* [[Djember (1941)]] {{GM}}
#* [[Djombang (1941)]] {{GM}}
#* [[Digoel (1941)]] {{GM}}
#* [[Djampea (1941)]] {{GM}}
#* [[Enggano (1941)]] {{GM}}
#* [[Endeh (1941)]] {{GM}}
#* `Flores` (onafgebouwd)]] {{GM}}
#* `Fakfak` (onafgebouwd)]] {{GM}}
#* `Grissee` (onafgebouwd)]] {{GM}}
#* `Garoet` (onafgebouwd)]] {{GM}}
# ''Texel'' motor minesweepers (1942 - 1943, 1941 - 1942 / 1944 - 1945)
#* [[Texel (1942)]]
#* [[Terschelling (1942)]]
#* [[Marken (1943)]]
#* [[Ameland (1942)]]
#* [[Beveland (1943)]]
#* [[Marken (1944)]]
#* [[Putten (1943)]]
#* [[Rozenburg (1943)]]
#* [[Terschelling (1943)]]
#* [[Vlieland (1942)]]
# ''Tholen'' motor minesweepers (1943 - 1944)
#* [[Duiveland (1944)]]
#* [[Overflakkee (1944)]]
#* [[Schokland (1944)]]
#* [[Tholen (1943)]]
#* [[Voorne (1943)]]
#* [[Walcheren (1943)]]
#* [[Wieringen (1943)]]
#* [[IJsselmonde (1943)]]
# ''Hollandsch Diep'' motor minesweepers (1942 - 1943 / 1946 - 1947)
#* [[Borndiep (1946)]]
#* [[Deurloo (1946)]]
#* [[Hollandsch Diep (1946)]]
#* [[Marsdiep (1947)]]
#* [[Oosterschelde (1947)]]
#* [[Texelstroom (1947)]]
#* [[Vliestroom (1947)]]
#* [[Volkerak (1946)]]
#* [[Westerschelde (1946)]]
#* [[Zuiderdiep (1947)]]
# ''Ambon'' minesweepers / frigates (1941 - 1942 / 1946)
#* [[Ambon (1946)]]
#* [[Banda (1946)]]
#* [[Batjan (1946)]]
#* [[Boeroe (1946)]]
#* [[Ceram (1946)]]
#* [[Morotai (1946)]]
#* [[Ternate (1946)]]
#* [[Tidore (1946)]]
# ''Beemster'' coastal minesweepers (1953-1954)
#* [[Beemster (1953)]]
#* [[Bolsward (1953)]]
#* [[Bedum (1953)]]
#* [[Beilen (1954)]]
#* [[Borculo (1953)]]
#* [[Borne (1953)]]
#* [[Brummen (1954)]]
#* [[Breukelen (1954)]]
#* [[Blaricum (1954)]]
#* [[Brielle (1954)]]
#* [[Breskens (1954)]]
#* [[Bruinisse (1954)]]
#* [[Boxtel (1954)]]
#* [[Brouwershaven (1954)]]
# ''Onversaagd'' ocean minesweepers (1954-1955)
#* [[Onversaagd (1955)]]
#* [[Onbevreesd (1955)]]
#* [[Onverschrokken (1954)]]
#* [[Onvermoeid (1954)]]
#* [[Onvervaard (1955)]]
#* [[Onverdroten (1955)]]
# ''Dokkum'' coastal minesweepers (1955-1957)<br>''Dokkum group''
#* [[Dokkum (1955)]] ([[Van Speijk (1986)]])
#* [[Hoogezand (1955)]]
#* [[Roermond (1955)]]
#* [[Naaldwijk (1955)]]
#* [[Abcoude (1956)]]
#* [[Drachten (1956)]]
#* [[Ommen (1956)]]
#* [[Giethoorn (1956)]]
#* [[Venlo (1956)]]
#* [[Drunen (1956)]]
#* [[Woerden (1957)]]
#* [[Naarden (1956)]]
#* [[Hoogeveen (1956)]]
#* [[Staphorst (1957)]]
#* [[Sittard (1956)]]
#* [[Gemert (1956)]]
#* [[Veere (1956)]]
#* [[Rhenen (1956)]]<br>''Wildervank group''
#* [[Wildervank (1955)]]
#* [[Steenwijk (1956)]]
#* [[Gieten (1956)]]
#* [[Waalwijk (1956)]]
#* [[Axel (1956)]]
#* [[Aalsmeer (1956)]]
#* [[Meppel (1956)]]
#* [[Lochem (1956)]]
#* [[Goes (1956)]]
#* [[Leersum (1956)]]
#* [[Sneek (1957)]]
#* [[Grijpskerk (1956)]]
#* [[Elst (1956)]]
#* [[Lisse (1957)]]
# ''Alblas'' inshore minesweepers (1960-1962)
#* [[Alblas (1960)]]
#* [[Bussemaker (1960)]]
#* [[Lacomblé (1960)]]
#* [[Van Hamel (1960)]]
#* [[Van Straelen (1960)]]
#* [[Van Moppes (1960)]]
#* [[Chömpff (1960)]]
#* [[Van Well Groeneveld (1961)]]
#* [[Schuiling (1961)]]
#* [[Van Versendaal (1962)]]
#* [[Van der Wel (1961)]]
#* [[Van 't Hoff (1961)]]
#* [[Mahu (1961)]]
#* [[Staverman (1962)]]
#* [[Houtepen (1962)]]
#* [[Zomer (1961)]]
# ''Alkmaar'' minehunters (1983 - 1989)
#* [[Alkmaar (1983)]]
#* [[Delfzijl (1983)]]
#* [[Dordrecht (1983)]]
#* [[Haarlem (1984)]]
#* [[Harlingen (1984)]]
#* [[Scheveningen (1984)]] (ex-Hellevoetsluis)
#* [[Maassluis (1984)]]
#* [[Makkum (1985)]]
#* [[Middelburg (1986)]]
#* [[Hellevoetsluis (1987)]] (ex-Scheveningen)
#* [[Schiedam (1986)]]
#* [[Urk (1986)]]
#* [[Zierikzee (1987)]] (ex-Veere)
#* [[Vlaardingen (1989)]]
#* [[Willemstad (1986)]]
!! Minesweeping boats
<br>
# ''Ardjoeno'' auxiliary minesweepers (1940 - 1941)
#* [[Ardjoeno (1940)]] {{GM}}
#* [[Gedeh (1940)]] {{GM}}
#* [[Kawi (1940)]] {{GM}}
#* [[Lawoe (1940)]] {{GM}}
#* [[Salak (1940)]] {{GM}}
# ''Smeroe'' auxiliary minesweepers (1941)
#* [[Smeroe (1941)]] {{GM}}
#* [[Merbaboe (1941)]] {{GM}}
#* [[Rindjani (1941)]] {{GM}}
#* `Merapi (1941)` {{GM}}
#* `Slamat (1941)` {{GM}}
#* `Tjerimai (1941)` {{GM}}
# ''Mv'' I minesweeping boats (1939)
#* ~~Mv I~~
#* ~~Mv II~~
#* ~~Mv III~~
#* ~~Mv IV~~
#* ~~Mv V~~
#* ~~Mv VI~~
#* ~~Mv VII~~
#* ~~MV VIII~~
#* ~~Mv IX~~
#* ~~Mv X~~
#* ~~Mv XI~~
#* ~~MV XII~~
# ''Walcheren'' minesweeping boats (1943 - 1944 / 1947)
#* [[Walcheren (1943)]] (ex-R220)
#* [[Goeree (1947)]] (ex-R240)
#* [[Schouwen (1947)]] (ex-R244)
#* [[Schiermonnikoog (1947)]] (ex-R246)
#* [[Urk (1947)]] (ex-R251)
#* [[Stortemelk (1947)]] (ex-R252)
#* [[Schulpengat (1947)]] (ex-R255)
#* [[Malzwin (1947)]] (ex-R268)
#* [[Vlieter (1947)]] (ex-R290)
# [[Roompot (1947)]] (ex-R424) minesweeping boat (1946/1947)
{{||$:/_ship_template}}
* <<slider "Torpedoboot Minotaurus ca. 1910" Schepen130>>
!! MLD vliegtuigen
[[Jonkerweb|https://kw.jonkerweb.net/index.php?option=com_content&view=featured&Itemid=107&lang=nl]]
|Model |Info |Type |Registratie |Dienstperiode |h
|`Beechcraft SNB-5` later TC-45J|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=338:beechcraft-model-18&catid=42&lang=nl&limitstart=1&Itemid=488]]|Trainer|U41-U46|1953-1974|
|`Breguet BR.1150 Atlantic`|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=386:breguet-br1150-atlantic&catid=42&lang=nl&Itemid=488]]|patrouillevliegtuig|250-258|1969-1984|
|[[Van Berkel W-A]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=395:van-berkel-wa&catid=42&lang=nl&Itemid=488]]|@@.h verkenner@@|W1-W21/W51-W70|1919-1933|
|[[Van Berkel W-B]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=396:van-berkel-wb&catid=42&lang=nl&Itemid=488]]|@@.h verkenner@@|E1-E6|1921-1933|
|`Consolidated B-24D Liberator Mk. III`|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=346:consolidated-b-24d-a-j-liberator&catid=43&lang=nl&Itemid=489]]|trainer|FL912/P & FL940/Z|1944-1945|
|`Consolidated B-24J Liberator GR.Mk.VI`|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=346:consolidated-b-24d-a-j-liberator&catid=43&lang=nl&Itemid=489]]|patrouillevliegtuig|div|1944-1946|
|[[Consolidated PBY-5]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=347:consolidated-pby-55a-catalina&catid=43&lang=nl&Itemid=489]]|@@.h patrouillevliegboot@@|Y38-Y73, Y86-Y87, P200-P206|1941-1942/1946-1952|
|[[Consolidated PBY-5A]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=347:consolidated-pby-55a-catalina&catid=43&lang=nl&Itemid=489]]|@@.h patrouillevliegboot@@|Y74-Y85, P211-P216, P220-P225|1942-1957|
|[[Curtiss H-12]] ^^1, 2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=344:curtiss-h-12&catid=43&lang=nl&limitstart=2&Itemid=489]]|@@.h vliegboot@@|L2|1916-1918|
|[[Curtiss Felixstowe F-2A|Curtiss Felixstowe F.2A]] ^^1, 2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=345:felixstowe-f2a&catid=54&lang=nl&Itemid=492]]|@@.h vliegboot@@|L1|1916-1918|
|`DeHavilland DH-82 Tiger Moth`|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=411:dehavilland-dh-82-tiger-moth&catid=52&lang=nl&Itemid=490]]|voor zweefvliegclub|U101-U103|1956-1960|
|[[Dornier Do-24K|Dornier Do 24K-1]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=469:dornier-do-24k&catid=52&lang=nl&Itemid=490]]|@@.h vliegboot@@|X1-X37|1937-1943|
|[[Dornier Wal|Dornier Do J I Wal]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=468:dornier-wal&catid=52&lang=nl&Itemid=490]]|@@.h patrouillevliegboot@@|D1-D46|1926-1942|
|[[Fairey IIID]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=421:fairey-iiid&catid=54&lang=nl&Itemid=492]]|@@.h boordvliegtuig@@|F1-F4|1925-1930|
|[[Farman HF.22]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=419:farman-hf-20-en-hf-22&catid=54&lang=nl&Itemid=492]]|lesvliegtuig|M1-M3, A4-A6|1914-1920|
|[[Fokker B.I]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=497:fokker-bibii-en-biii&catid=54&lang=nl&Itemid=492]]|@@.h vliegboot@@|FB1|1923-1929|
|[[Fokker C.I]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=353:fokker-ci&catid=54&lang=nl&showall=1&Itemid=492]]|verkenner|F1-F16|1920-1936|
|[[Fokker C.V]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=480:fokker-cv&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h v@@erkenner|Z1-Z12|1925-1939|
|[[Fokker C.VE|Fokker C.V]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=480:fokker-cv&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h v@@erkenner|Z13-Z24|1926-1938|
|[[Fokker C.VIIIw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=403:fokker-cviiiw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h torpedobommenwerper@@|G1-G9|1930-1940|
|[[Fokker C.VIIw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=476:fokker-cviiw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h boordvliegtuig/verkenner@@|V1-V12, L1-L18|1928-1942|
|[[Fokker C.XIVw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=475:fokker-cxivw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h verkenner/trainer@@|@@.h F1-F24@@|1939-1942|
|[[Fokker C.XIw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=428:fokker-cxiw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h boordvliegtuig@@|W1-W15|1935-1942|
|[[Fokker D.VII]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=359:fokker-dvii&catid=54&lang=nl&showall=1&Itemid=492]]|jachtvliegtuig|D20-D40|1920-1937|
|`Fokker S.11`|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=482:fokker-s11-instructor&catid=54&lang=nl&showall=1&Itemid=492]]|lesvliegtuig|174-179/197-199|1970-1973|
|[[Fokker S.III]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=461:fokker-siii&catid=54&lang=nl&showall=1&Itemid=492]]|lesvliegtuig|S1-S19|1924-1939|
|[[Fokker S.IX]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=463:fokker-six&catid=54&lang=nl&showall=1&Itemid=492]]|trainer|S20-S34|1938-1940|
|[[Fokker T.IVw|Fokker T.IV]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=459:fokker-tivw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h verkenningsbommenwerper@@|T1-T12|1927-1940|
|[[Fokker T.IVa]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=459:fokker-tivw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h verkenningsbommenwerper@@|T13-T24|1936-1942|
|[[Fokker T.VIIIw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=458:fokker-tviiiw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h torpedobommenwerper@@|R1-R11|1939-1940|
|[[Friedrichshafen FF.19]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=454:friedrichshafen-ff19&catid=54&lang=nl&Itemid=492]]|@@.h lesvliegtuig@@|R1|1914-1919|
|[[Friedrichshafen FF.29]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=455:friedrichshafen-ff29&catid=54&lang=nl&Itemid=492]]|@@.h verkennings-trainingsvliegtuig@@|S1|1916-1917|
|[[Friedrichshafen FF.33L/J/S|Friedrichshafen FF.33L]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=456:friedrichshafen-ff33&catid=54&lang=nl&Itemid=492]]|@@.h zeeverkenner@@|V1-V3|1917-1925|
|[[Friedrichshafen FF.33L]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=456:friedrichshafen-ff33&catid=54&lang=nl&Itemid=492]]|@@.h zeeverkenner@@|V15-V32|1919-1925|
|[[Friedrichshafen FF.49C]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=457:friedrichshafen-ff49c&catid=54&lang=nl&Itemid=492]]|@@.h zeeverkenner@@|V4-V6|1918-1920|
|[[Gotha WD-11]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=424:gotha-wd-11&catid=55&lang=nl&Itemid=493]]|@@.h torpedobommenwerper@@|M1|1917-1919|
|[[Hansa-Brandenburg W.12]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=423:hansabrandenburg-w12&catid=56&lang=nl&Itemid=494]]|@@.h jager/verkenner@@|W1|1918-1919|
|[[Hansa-Brandenburg W.29]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=367:hansa-brandenburg-w29&catid=56&lang=nl&Itemid=494]]|@@.h jager/verkenner@@|W2|1918-1919|
|`Koolhoven FK.51`|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=429:koolhoven-fk51&catid=57&lang=nl&Itemid=495]]|trainer voortgezette vliegopleiding|E1-E15|1936-1940|
|[[Martin PBM-5A Mariner]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=392:martin-pbm-5a-mariner&catid=63&lang=nl&Itemid=497]]|@@.h patrouillevliegboot@@|P300-P316|1955-1960|
|[[Martin R]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=438:martin-r&catid=63&lang=nl&Itemid=497]]|@@.h schoolvliegtuig@@|H1-H2|1917-1919|
|[[Martin S]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=439:martin-s&catid=63&lang=nl&Itemid=497]]|@@.h lesvliegtuig@@|J1-J4|1917-1919|
|`Pander D`|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=402:pander-d&catid=65&lang=nl&Itemid=499]]|voor vliegvaardigheid|P1-P2|1925-1927|
|[[Rumpler 6B-2]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=489:rumpler-6b-2&catid=66&lang=nl&Itemid=500]]|@@.h jachtvliegtuig@@|U1|1917-1920|
|[[Ryan STM-2|Ryan STM-2S]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=452:ryan-stm-2-en-stm-2s&catid=66&lang=nl&Itemid=500]]|@@.h lesvliegtuig@@|S11-S34|1940-1942|
|[[Ryan STM-2S]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=452:ryan-stm-2-en-stm-2s&catid=66&lang=nl&Itemid=500]]|@@.h lesvliegtuig@@|S35-S58|1940-1942|
|[[Short 184]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=408:short-184&catid=68&lang=nl&showall=1&Itemid=501]]|@@.h torpedobommenwerper@@|K1|1917-1920|
|`Sopwith Baby` ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=409:sopwith-baby&catid=68&lang=nl&showall=1&Itemid=501]]|jachtvliegtuig|T1|1916-1919|
|[[Spyker V.1]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=493:spijker-v1&catid=68&lang=nl&showall=1&Itemid=501]]|trainer|A7 (A10)|1918-1920|
|[[Spyker V.2]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=494:spijker-v2&catid=68&lang=nl&showall=1&Itemid=501]]|trainer|C11-C30|1918-1924|
|[[Supermarine Sea Otter Mk.2]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=272:supermarine-sea-otter-asr-mk1&catid=68&lang=nl&showall=1&Itemid=501]]|@@.h vliegboot@@|12-1 t/m 12-8|1951-1953|
|`Taylorcraft Auster Mk. III`|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=401:taylorcraft-auster-mk-iii&catid=67&lang=nl&showall=1&Itemid=502]]|communicatievliegtuig|1-31 t/m 1-34|1948-1956|
|[[Thulin K]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=399:thulin-k-ka-en-la&catid=67&lang=nl&showall=1&Itemid=502]]|jachtvliegtuig|D1-D12|1917-1920|
|[[Thulin KA|Thulin K]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=399:thulin-k-ka-en-la&catid=67&lang=nl&showall=1&Itemid=502]]|jachtvliegtuig|B1-B3|1917-1922|
|[[Thulin LA]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=399:thulin-k-ka-en-la&catid=67&lang=nl&showall=1&Itemid=502]]|jachtvliegtuig|C1-C10|1918-1923|
|[[White & Thompson no. 3]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=397:white-a-thompson-no-3&catid=70&lang=nl&showall=1&Itemid=504]]|@@.h vliegboot@@|MG1 (G1)|1915-1919|
^^1^^ bij elkaar horend<br>
^^2^^ geïnterneerd
@@.h watervliegtuig@@
---
|Model |Info |Type |Registratie |Dienstperiode |h
|[[Friedrichshafen FF.19]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=454:friedrichshafen-ff19&catid=54&lang=nl&Itemid=492]]|@@.h lesvliegtuig@@|R1|1914-1919|
|[[White & Thompson no. 3]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=397:white-a-thompson-no-3&catid=70&lang=nl&showall=1&Itemid=504]]|@@.h vliegboot@@|MG1 (G1)|1915-1919|
|[[Friedrichshafen FF.29]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=455:friedrichshafen-ff29&catid=54&lang=nl&Itemid=492]]|@@.h verkennings-trainingsvliegtuig@@|S1|1916-1917|
|[[Felixstowe F-2A|Curtiss Felixstowe F.2A]] ^^1, 2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=345:felixstowe-f2a&catid=54&lang=nl&Itemid=492]]|@@.h vliegboot@@|L1|1916-1918|
|[[Curtiss H-12]] ^^1, 2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=344:curtiss-h-12&catid=43&lang=nl&limitstart=2&Itemid=489]]|@@.h vliegboot@@|L2|1916-1918|
|[[Gotha WD-11]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=424:gotha-wd-11&catid=55&lang=nl&Itemid=493]]|@@.h torpedobommenwerper@@|M1|1917-1919|
|[[Martin R]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=438:martin-r&catid=63&lang=nl&Itemid=497]]|@@.h schoolvliegtuig@@|H1-H2|1917-1919|
|[[Martin S]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=439:martin-s&catid=63&lang=nl&Itemid=497]]|@@.h lesvliegtuig@@|J1-J4|1917-1919|
|[[Rumpler 6B-2]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=489:rumpler-6b-2&catid=66&lang=nl&Itemid=500]]|@@.h jachtvliegtuig@@|U1|1917-1920|
|[[Short 184]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=408:short-184&catid=68&lang=nl&showall=1&Itemid=501]]|@@.h torpedobommenwerper@@|K1|1917-1920|
|[[Friedrichshafen FF.33L/J/S|Friedrichshafen FF.33L]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=456:friedrichshafen-ff33&catid=54&lang=nl&Itemid=492]]|@@.h zeeverkenner@@|V1-V3|1917-1925|
|[[Curtiss Felixstowe F-2A|Curtiss Felixstowe F.2A]] ^^1, 2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=345:felixstowe-f2a&catid=54&lang=nl&Itemid=492]]|@@.h vliegboot@@|L1|1916-1918|
|[[Hansa-Brandenburg W.12]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=423:hansabrandenburg-w12&catid=56&lang=nl&Itemid=494]]|@@.h jager/verkenner@@|W1|1918-1919|
|[[Hansa-Brandenburg W.29]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=367:hansa-brandenburg-w29&catid=56&lang=nl&Itemid=494]]|@@.h jager/verkenner@@|W2|1918-1919|
|[[Friedrichshafen FF.49C]] ^^2^^|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=457:friedrichshafen-ff49c&catid=54&lang=nl&Itemid=492]]|@@.h zeeverkenner@@|V4-V6|1918-1920|
|[[Friedrichshafen FF.33L]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=456:friedrichshafen-ff33&catid=54&lang=nl&Itemid=492]]|@@.h zeeverkenner@@|V15-V32|1919-1925|
|[[Van Berkel W-A]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=395:van-berkel-wa&catid=42&lang=nl&Itemid=488]]|@@.h verkenner@@|W1-W21/W51-W70|1919-1933|
|[[Van Berkel W-B]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=396:van-berkel-wb&catid=42&lang=nl&Itemid=488]]|@@.h verkenner@@|E1-E6|1921-1933|
|[[Fokker B.I]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=497:fokker-bibii-en-biii&catid=54&lang=nl&Itemid=492]]|@@.h vliegboot@@|FB1|1923-1929|
|[[Fairey IIID]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=421:fairey-iiid&catid=54&lang=nl&Itemid=492]]|@@.h boordvliegtuig@@|F1-F4|1925-1930|
|[[Fokker C.V]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=480:fokker-cv&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h v@@erkenner|Z1-Z12|1925-1939|
|[[Fokker C.VE|Fokker C.V]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=480:fokker-cv&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h v@@erkenner|Z13-Z24|1926-1938|
|[[Dornier Wal|Dornier Do J I Wal]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=468:dornier-wal&catid=52&lang=nl&Itemid=490]]|@@.h patrouillevliegboot@@|D1-D46|1926-1942|
|[[Fokker T.IVw|Fokker T.IV]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=459:fokker-tivw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h verkenningsbommenwerper@@|T1-T12|1927-1940|
|[[Fokker C.VIIw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=476:fokker-cviiw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h boordvliegtuig/verkenner@@|V1-V12, L1-L18|1928-1942|
|[[Fokker C.VIIIw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=403:fokker-cviiiw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h torpedobommenwerper@@|G1-G9|1930-1940|
|[[Fokker C.XIw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=428:fokker-cxiw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h boordvliegtuig@@|W1-W15|1935-1942|
|[[Fokker T.IVa]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=459:fokker-tivw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h verkenningsbommenwerper@@|T13-T24|1936-1942|
|[[Dornier Do-24K|Dornier Do 24K-1]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=469:dornier-do-24k&catid=52&lang=nl&Itemid=490]]|@@.h vliegboot@@|X1-X37|1937-1943|
|[[Fokker T.VIIIw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=458:fokker-tviiiw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h torpedobommenwerper@@|R1-R11|1939-1940|
|[[Fokker C.XIVw]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=475:fokker-cxivw&catid=54&lang=nl&showall=1&Itemid=492]]|@@.h verkenner/trainer@@|@@.h F1-F24@@|1939-1942|
|[[Ryan STM-2|Ryan STM-2S]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=452:ryan-stm-2-en-stm-2s&catid=66&lang=nl&Itemid=500]]|@@.h lesvliegtuig@@|S11-S34|1940-1942|
|[[Ryan STM-2S]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=452:ryan-stm-2-en-stm-2s&catid=66&lang=nl&Itemid=500]]|@@.h lesvliegtuig@@|S35-S58|1940-1942|
|[[Consolidated PBY-5]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=347:consolidated-pby-55a-catalina&catid=43&lang=nl&Itemid=489]]|@@.h patrouillevliegboot@@|Y38-Y73, Y86-Y87, P200-P206|1941-1942/1946-1952|
|[[Consolidated PBY-5A]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=347:consolidated-pby-55a-catalina&catid=43&lang=nl&Itemid=489]]|@@.h patrouillevliegboot@@|Y74-Y85, P211-P216, P220-P225|1942-1957|
|[[Supermarine Sea Otter Mk.2]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=272:supermarine-sea-otter-asr-mk1&catid=68&lang=nl&showall=1&Itemid=501]]|@@.h vliegboot@@|12-1 t/m 12-8|1951-1953|
|[[Martin PBM-5A Mariner]]|[[link|https://kw.jonkerweb.net/index.php?option=com_content&view=article&id=392:martin-pbm-5a-mariner&catid=63&lang=nl&Itemid=497]]|@@.h patrouillevliegboot@@|P300-P316|1955-1960|
Het zwaartepunt van de MLD lag onbetwist in Nederlands-Indië. Zo voerden de vliegtuigen veel verkenningsvluchten uit voor de vloot. Vlak voor het uitbreken van de oorlog beschikte de MLD over 34 vliegboten van het type Dornier Do 24K en 25 Consolidated PBY Catalina vliegboten, 8 Fokker C-XI W drijvervliegtuigen voor de kruisers en 10 verouderde Fokker T-IVa’s. Het materieel was goed, maar in aantal onvoldoende om begin 1942 de invasie van een Japanse overmacht tegen te houden. De nog beschikbare vliegtuigen weken uit naar Ceylon en Australië of werden door eigen personeel vernietigd.
!!! De Aanval op Broome, 3 maart 1942
De aanval op Broome was een luchtaanval op 3 maart 1942. Negen Japanse gevechtsvliegtuigen voerden een luchtaanval uit op 16 vliegboten in de baai van Broome. Aan boord van de vliegboten bevonden zich nog vanuit Java geëvacueerde vluchtelingen, voornamelijk Nederlandse burgers en militairen. De vliegboten werden in brand geschoten en slechts enkelen wisten zich te redden. Hierbij kwamen tenminste 86 personen (waarvan 64 Nederlanders) om het leven. De MLD was zwaar getroffen, de Do 24 ''X-1'', ''X-3'', ''X-20'', ''X-23'' en ''X-28'' werden vernietigd, alsmede de Consolidated PBY Catalina vliegboten ''Y-59'', ''Y-60'', ''Y-67'' en ''Y-70''.
<<<
Broome was een tankplaats voor vliegtuigen, gelegen tussen Nederlands-Indië en de grotere plaatsen van Australië aan de oostkust. Hierdoor kwamen langs Broome vele Nederlandse vluchtelingen, afkomstig van onder meer Java, die waren verjaagd door de Japanse invasie. Door haar ligging groeide Broome uit tot een significante geallieerde militaire basis. Begin 1942, rond de Slag om Java, passeerden meer dan 1000 vluchtelingen uit Nederlands-Indië Broome, voornamelijk aangevoerd met watervliegtuigen.
<<<
!!! Overige activiteiten
Vijf Do 24 toestellen werden uiteindelijk in april 1942 aan de RAAF (Royal Australian Air Force) overgedragen. Eén toestel bleef tot oktober 1943 in dienst bij de MLD en werd gebruikt voor het uitvoeren van verkennings- en ferryvluchten voor de Nederlandse Inlichtingendienst NEFIS.<br>Tijdens de Tweede Wereldoorlog opereerde de MLD met Catalina's vanuit onder andere Ceylon en Australië.<br>Op Ceylon werd het <<popup "321 Dutch Squadron RAF" "321 Dutch Squadron RAF">> opgericht.
In 1940 beschikte de MLD niet meer over vliegtuigen om vlootbasis Den Helder te verdedigen. Dit was de taak van de Fokker D.XXI-toestellen van de landmacht op De Kooy. Maar ondanks hevige tegenstand waren zij op 10 mei 1940 niet opgewassen tegen de Duitse overmacht. Een aantal MLD-vliegers zag wel kans om met acht Fokker T.VIIIw torpedobommenwerpers naar Engeland te vluchten. Op 22 mei 1940 arriveerden zij op de RAF basis Calshot.
In augustus 1940 volgde de oprichting van de squadrons 320 Dutch Squadron RAF en 321 Dutch Squadron RAF met respectievelijk Fokkers T-VIIIw en Avro Ansons-toestellen. Die werden ingedeeld bij het Britse Coastal Command. Deze toestellen bleken in oorlogssituaties niet te voldoen. Vervangers waren de Lockheed Hudsons. Deze vliegtuigen moesten konvooien begeleiden en beschermen, maar ook vijandelijke ertstransporten op de scheepvaartroute Narvik-Rotterdam aanvallen. De grote verbetering kwam toen het squadron de beschikking kreeg over B25 Mitchell middelzware bommenwerpers en werd ingedeeld bij de 2nd Tactical Air Force van de RAF. Op 17 augustus 1943 voerde 320 Dutch Squadron RAF zijn eerste bombardement uit op de rangeerterreinen van Calais. Dit was het begin van 3500 missies waarbij 140 man om het leven kwamen. Zonder afbreuk te doen aan andere krijgsmachtonderdelen, kan gezegd worden dat 320 Dutch Squadron RAF het productiefste onderdeel van de Nederlandse krijgsmacht was tijdens de Tweede Wereldoorlog. Op 2 augustus 1945 kwam het squadron onder de Marine Luchtvaartdienst en werd pas in 2005 opgeheven.
In WWII door Britten voor Nederlandse marine gebouwde houten mijnenveger van de MMS105-klasse (105 feet).<br>De mijnenvegers van deze klasse werden ook wel Mickey's genoemd.
In WWII door Britten voor Nederlandse marine gebouwde houten mijnenveger van de MMS126-klasse (126 feet). De 126 voet mijnenvegers waren een vergrote versie van de 105 voet schepen en waren bovendien zeewaardiger.
|borderless|k
|[img[Motor|Images/davenportmotor.jpg]]| |[img['Trein'|Images/Davenporttrain.jpg]]|
|//Model van zijn elektrische motor.//||//Model van zijn elektrische 'trein'.//|
!!! Monitor
Een laag op het water liggend, gepantserd, niet zeewaardig vaartuig voorzien van een zware geschutstoren.<br>
Speciaal bedoeld voor de verdediging van de Nederlandse zeegaten en de Zuiderzee.
<<w>>
Australisch korvet/mijnenveger ''Ipswich'' (J186). Vanaf 1946 bij Nederlandse marine.<br>
In 1950 naar Indonesische marine als ''Hang Tuah''.
{{||$:/_ship_template}}
* <<slider "(Rivier)kanonneerboot Mosa 1879" Schepen136>>
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
Marine Opleidingsvaartuig
{{||$:/_ship_template}}
* <<slider "Motorreddingboot MRB50 1943" Schepen402>>
De MRB50 was in feite een onbewapende torpedomotorboot die voor de Koninklijke Marine gebouwd werd in Miami. De motorreddingboot werd samen met de motortorpedoboten TM28 en TM29 en de Higginsboten H7 en H8 in 1942 overgevaren naar Curaçao. Vanuit basis Parera deed de boot dienst als air-sea-rescue boot. De MRB 50 werd buiten dienst gesteld toen de Torpedomotordienst op Curaçao opgeheven werd.
De MTB202 (Kemphaan) werd samen met de MTB's 229 (Gier), 231 (Stormvogel) en 236 (Havik) overgenomen van de Britse marine.<br>
De MTB202 werd in september 1944 buiten dienst gesteld en opgelegd te Portland. In februari 1946 werd de boot van de sterkte afgevoerd en verkocht.
De MTB-s van de MTB202-klasse behoorden tot de zogenaamde Vosperboten. De torpedomotorboten waren door Vosper te Plymouth ontwikkeld, maar werden onder licentie gebouwd op verschillende kleine Britse werven.
<<<
Op 5 september 1944 werd de Nederlandse Torpedomotordienst in Groot-Brittannië opgeheven omdat de bemanningsleden nodig waren voor de vorming van zogenaamde havendetachementen in bevrijd Nederland.
<<<
De MTB203 (Arend) behoorde tot de eerste 4 Britse MTB's die door Nederland aangekocht werden. De torpedomotorboot werd op 3 maart 1942 in Nederlandse dienst gesteld.<br>
Tijdens WWII patrouilleerde de Arend in Het Kanaal. Hier zou het schip ook verloren gaan doordat het op 18 mei 1944 ten zuiden van Boulogne op een zeemijn liep.
De MTB204 (Valk) behoorde tot de eerste 4 torpedomotorboten die door de Koninklijke Marine aangekocht werden.<br>
Op 14 september 1944 werd de boot buiten dienst gesteld en in conservatie genomen. Op 16 december van datzelfde jaar werd het schip opgelegd te Portland en in februari 1946 van de sterkte afgevoerd.
De MTB222 (Sperwer) werd op 17 april 1942 tijdelijk in Nederlandse dienst gesteld. Op 5 juni van dat jaar werd de torpedomotorboot vervangen door de MTB235 en teruggegeven aan de Royal Navy.
De MTB229 (Gier) werd door Nederland aangekocht en op 13 juli 1943 te Weymouth in dienst gesteld. Vanaf eind 1944 fungeerde de MTB229 als patrouille- en communicatievaartuig in het bevrijde Zeeland. De boot werd op 22 juni 1946 te Vlissingen buiten dienst gesteld en negen dagen later van de sterkte afgevoerd, maar pas in augustus 1948 verkocht.
De MTB231 (Stormvogel), overgenomen van de Britse marine, werd op 20 augustus 1943 te Dover in Nederlandse dienst gesteld. Op 18 september 1944 werd de MTB231 buiten dienst gesteld en opgelegd te Portland. In februari 1946 werd de boot van de sterkte afgevoerd en verkocht.
De MTB235 (Sperwer) werd op 16 juni 1942 in Nederlandse dienst gesteld ter vervanging van MTB222 en kreeg dezelfde naam. De torpedomotorboot verrichtte patrouillediensten in het Kanaal totdat zij op 15 september 1944 buiten dienst werd gesteld. Op 16 december van dat jaar werd de boot opgelegd te Portland en in februari 1946 van de sterkte afgevoerd en verkocht.
De MTB236 (Havik) werd aangekocht en op 28 augustus 1943 te Shoreham in Nederlandse dienst gesteld. De boot werd op 25 september 1944 te Dover buiten dienst gesteld en op 16 december van dat jaar opgelegd in Portland. In februari 1946 werd de torpedomotorboot van de sterkte afgevoerd en verkocht.
{{||$:/_ship_template}}
* <<slider "Torpedomotorboot MTB240 ca. 1943" Schepen400>>
De MTB240 (Buizerd) maakte deel uit van de MTB's die in 1942 door de Nederlandse marine gekocht werden van de Royal Navy. De torpedomotorboot werd op 6 juni 1942 in Nederlandse dienst gesteld. Op 5 september 1944 werd MTB240 buiten dienst gesteld en vervolgens op 16 december opgelegd in Portland. In februari 1946 werd de boot van de sterkte afgevoerd en verkocht.
De voormalige Britse Motor Gun Boat MGB418 werd op 27 mei 1944 in Nederlandse dienst gesteld als MTB418. De boot werd op 23 september 1944 te Dover buiten dienst gesteld en daarna teruggegeven aan de Royal Navy.
MTB432 was als MGB in Poolse dienst geweest onder de naam ORP S4 en in Britse dienst als MGB432. De torpedomotorboot werd op 18 april 1944 in Nederlandse dienst gesteld. Na op 23 september 1944 al weer buiten dienst gesteld te zijn, werd de boot teruggegeven aan de Britse marine.
{{||$:/_ship_template}}
* <<slider "Motorkanonneerboot MGB114 1942" Schepen355>>
* <<slider "Torpedomotorboot MTB433 1943" Schepen354>>
De MTB433 was een Nederlandse motorkannonneerboot (<<mouseover MGB MGB>>), onderdeel van het 2de MTB-flottielje van de Nederlandse motortorpedodlenst gedurende WWII.<br>Andere schepen van dit 2de MTB-vlottielje waren de MTB 432, MTB 436, MTB 418, en MTB 437.<br>
In 1942 aangeschaft als Motor Gun Boat MGB114, later verbouwd tot torpedomotorboot (Engels ''M''otor ''T''orpedo ''B''oat) MTB433.<br>
Eind 1945 werd de MTB433 uit dienst gesteld om begin 1948 opnieuw in dienst te worden gesteld als torpedovolgboot RJ2 bij de onderzeedienst.<br>Later kreeg het schip de naam ''Jachthond''.<br>
In 1953 werd het schip (inmiddels A964) geclassifceerd als patrouilleschip met naamsein P884.<br>
In 1955 uit dienst gesteld.
De Britse MGB436 werd op 10 april 1944 in Nederlandse dienst gesteld als MTB436. Op 23 september 1944 werd de boot te Dover buiten dienst gesteld en ging terug naar de Britten.
De Britse MGB437 werd op 8 april 1944 in Nederlandse dienst gesteld. Op 23 september 1944 werd de MTB437 buiten dienst gesteld. De torpedomotorboot werd vervolgens weer overgedragen aan de Royal Navy.
!! MUD boot
Vaartuig ten behoeve van de Mijnen Uitkijk Dienst.
<<w 400px>>
!! Meerdere schepen met dezelfde naam
<<list-links "[tag[multi]sort[title]]">>
@@.c Schip met dezelfde naam in overlappende periode!@@
!! Naamseinen van de Nederlandse oorlogsschepen sedert W0II
Bron: [[dutchfleet|https://www.dutchfleet.nl/showthread.php/17395-Naar-de-sloop?p=118443&viewfull=1#post118443]]
!!! Bronnen:
* Maandelijkse overzichten Nederlandse oorlogsschepen van de Marinestaf, Afdeling Operatien, geraadpleegd van november 1945 tot en met december 1952
* Hulpgetallenlijst KM en de bewerkingen daarvan door L.M. Kruik en H.van Kuilenburg
* Naamseinenlijst(en) van F.de Boer
Tot 15 juni 1946 voeren de schepen der KM zonder Nederlandse registratiekenmerken of naamseinen. Voor zover letters en/of cijfers op de grotere schepen zichtbaar waren, stamden die uit de Tweede Wereldoorlog en hadden een niet-Nederlandse herkomst.<br>
Veelal betrof het Britse of Amerikaanse aanduidingen of naamseinen, ook wel Duitse waar net in beslag genomen vaartuigen
betrof:
|''ADC'' |? |
|''AMS'' |? |
|''BYMS'' |Brooklyn Yard minesweeper|
|''DE'' |Destroyer Escort|
|''HDML'' |Harbour Defence Motor Launch|
|''LCA'' |Landing Craft Attack|
|''LCM'' |Landing Craft Material|
|''LCP'' |Landing Craft Personnel|
|''LCT'' |Landing Craft Tanks|
|''MGB'' |motorgunboat|
|''MMS'' |motorminesweeper|
|''MTB'' |motortorpedoboat|
|''PCE'' |Patrol Craft Escort|
|''R'' |Raumboote|
|''S'' |Schnellboote|
Schepen die na het einde van de oorlog aan de KM werden toegewezen of werden teruggevonden in binnene en buitenlandse havens of die tijdens de oorlog verworven waren, werden ongeacht grootte of type in een groot bestand opgenomen: de Military Vessel Pool (''MVP'') en van een volgnummer voorzien. Hieruit betrokken alle nieuw opgezette diensten en instellingen hun vaartuigen. Elke dienst of instelling gaf vervolgens aan de 20 verkregen vaartuigen een eigen registratienummer, waarin de naam van de dienst of het beoogde gebruik van het vaartuig tot uitdrukking kwam.
|''BK'' |pontons en vlotten|
|''BS'' |? |
|''DH'' |zeiljachten|
|''KM'' |Koninklijke Marine|
|''LNG'' |Landmacht Nieuw-Guinea (3 ex-Duitse vaartuigen)|
|''M''|motorsloep of soms ook mijnenveger|
|''MAG'' |? |
|''MBVV'' |motorbetonnings- en verlichtingsvaartuigen|
|''MCTV'' |militaire commissie teruggave vaartuigen|
|''ML'' |mijnenlegger|
|''MOD'' |mijnenopsporingsdienst|
|''MSD'' |marinesleepdienst|
|''MTD'' |marinetransportdienst|
|''MUD'' |mijnenuitkijkdienst|
|''MV'' |mijnenveger|
|''MVD'' |mijnenveegdienst|
|''MVP'' |military vessel pool|
|''OZD'' |onderzeedienst|
|''POL'' |werfpolitievaartuigen van de Rijkswerf|
|''RAF'' |Royal Air Force (vaartuigen hiervan afkomstig?|
|''SL'' |? |
|''T'' |? |
|''TMM'' |torpedo mijnenmaterieel|
|''WDP'' |Wreck Disposal Party|
|''X'' |? |
|''Z'' |? |
|''K3'' |Van Speijk |(voor ''N5'')|
|''F66'' |Flores |(voor ''N1'')|
|''U93'' |Van Kinsbergen |(voor ''N3'')|
|''K251'' |Johan Maurits van Nassau |(voor ''PF1'')|
■ Cf. 300/17/1/46 dd. 15 juni 1946 en gerekend vanaf dit moment werd een systematisch Nederlands stelsel van naamseinen ingesteld. Daarna werd dit systeem aangepast en verfijnd tot het met ingang van 15 oktober 1950.<br>
(S 11904/5291 C) werd vervangen door een NAVO-naamseinensysteem, dat voor alle aangesloten bondgenoten geldig was. Ook dit NAVO-naamseinensysteem werd in de jaren na de indienststelling voortdurend aangepast en uitgebreid naar aanleiding van nieuwe scheepstypes, nieuwe voortstuwinqs—vormen of wanneer een categorie te klein bleek om alle schepen daarin te kunnen herbergen.<br>
Dit laatste geschiedde in 1953 (waarschijnlijk per 15 juni van dat jaar) met de 3-cijferige Y-lijst. Deze werd vervangen door een 4-cijferige lijst.
|Naamseinen 15-06-1946|<|h
|''KL'' |lichte kruisers|
|''QH'' |hulp-vliegkampschepen|
|''J'' |jagers|
|''N'' |kanonneerboten|
|''O'' |onderzeeboten;<br>oude O-boten behielden als naamsein hun naamnummer (''O21'', ''O23'', ''O24'' en ''O27''), nieuwe onderzeeboten begonnen bij ''O1''.<br>Cf. S 5621/5291 DG dd. 15-08-1948 werden de toen in dienst zijnde boten ''O2'' t/m ''O5'' omgenummerd tot resp. ''O28'' t/m ''O31''.|
|''P'' |patrouilleboten, te onderscheiden in:<br>''PF1'' Johan Maurits van Nassau<br>''PE1'' Jan van Brakel<br>''PO1'' Queen Wilhelmina|
|''RP'' |regionale patrouilleboten|
|''ML'' |mijnenleggers|
|''MV'' |mijnenvegers|
|''LT'' |kleine vaartuigen|
|''H'' |hulpvaartuigen, te onderscheiden in:<br>''HD''<br>''HI'' Mercuur<br>''HQ''|
|''HX'' |opleidingsvaartuigen|
|''HY'' |opnemingsvaartuigen|
■ Aanpassing Cf. MS 300/23/1/46 dd. 15-09-1946:
|''PK'' ||korvetten Ambon—klasse|
|''H:'' |''HW'' |wacht- en logementschepen|
Tevens werden vanaf deze datum 3-letterige afkortingen gebruikt voor de scheepsnamen door gebruik van medeklinkers in de naam:
|Karel Doorman |''DMN''|
|Jacob van Heemskerck |''HKK''|
■ Aanpassing cf. MS 300/52/1/47 dd. 21-01-1947:
|''QH'' ||vliegkampschip|
|''KV'' |ex-''KL'' |luchtverdedigingskruiser|
|''JT'' |ex-''J'' |jagers|
|''JO'' |ex-''PF'' |Johan Maurits van Nassau|
|''L'' ||landingsvaartuigen, te onderscheiden in:<br>''LU'' landingsvaartuigen gemechaniseerde uitrusting<br>''LA'' landingsvaartuigen aanval<br>''LP'' landingsvaartuigen personeel|
|''H:'' |''HL2'' |Woendi|
|''HR'' ||reparatieschepen|
|''P'' ||patrouilleboten gehandhaafd, de onderscheidingen ''PK'' en ''PE'' komen te vervallen.|
■ Aanpassing cf. MS 300/67/1/47 dd. 15-03-1947:
|''R'' ||regionalee of lokale vaartuigen, te onderscheiden in:<br>''RC'' patrouilledienst, tevens communicatievaartuigen<br>''RD'' duik(er)sloepen<br>''RO1'' ex-''PO1'' Queen Wilhelmina<br>''RY'' lokale vaartuigen|
|''H:'' |''HF'' |bergingsvaartuigen|
■ Aanpassing cf. MS 300/75/1/47 dd. 15-04-1947:
|''S'' |lokale schepen|
■ Aanpassing cf. S 5621/5291 DG dd. 15-08-1948:
|''0:'' |''O28'' ex-''O2'' |Tijgerhaai (ex-Tarn)|
||''O29'' ex-''O3'' |Zwaardvis (ex-Zwaardvisch, ex—Talent)|
||''O30'' ex-''O4'' |Dolfijn (ex—Taurus)|
||''O31'' ex-''O5'' |Zeehond (ex—Tapir)|
■ Aanpassing cf. S 8001/5291 DG dd. 15-06-1949:
|''H:'' |''HE1'' ex-''RO1'' |Queen Wilhelmina|
■ Aanpassing cf. S 8213/8001 DG dd. 15-07-1949:
|''P:'' |''P14'' ex-''HE1'' (1)|Queen Wilhelmina|
|''H:'' |''HE1'' (2) ex-''RJ3'' |onderzeebootdetectie- en beproevingsvaartuig|
■ Introductie NAvoenaamseinen cf. S 11904/5291 C dd. 15-10-1950:
Alle bestaande registraties werden met ingang van 15 oktober 1950 vervallen verklaard en vervangen door het internationaal
gehanteerde NAVO-naamseinensysteem, dat voor alle bondgenoten eensluidend was en dat tot op de dag van vandaag (''1992'') is gebleven.
|''R81'' |ex-''QL1'' |vliegkampschip|
|''C8..'' |ex-''KL'', ex-''KV'' |kruisers|
|''D8..'' |ex-''JT'' |onderzeebootjagers|
|''F8..'' |ex-''N'', ex-''JO1'', ex-''P15'', ex-''Pl6'' |fregatten|
|''S8..'' |ex-''O'' |onderzeeboten|
|''M8..'' |ex-''P'', ex-''MV'' |mijnenvegers|
|''P8..'' |ex-''P14'', ex-''RP'', ex-''RQ'' |snelle motorvaartuigen|
|''A8..'' |ex-''RY'',<br>ex-''HB'', ''HE'', ''HF'', ''HI'', ''HL'', ''HQ'', ''HR'', ''HS'', ''HW'', ''HX'' |hulpschepen|
|''A9..'' |ex-''HY'' |hulpschepen, opnemingsvaartuigen|
|''L95..'' |ex-''LCA'' |landingsvaartuigen|
|''L96..'' |ex-''LCT'', ex-''LCM'' |landingsvaartuigen|
|''N81'' |ex-''ML1'' |mijnenlegger, mijnenveegwerkschip|
|''N82'' |ex-''ML2'' |mijnenlegger, mijnenveegwerkschip|
|''Y8..'' |ex-''RA'', ''RB'', ''RC'', ''RD'', ''RF'', ''RG'', ''RH'', ''RI'', ''RJ'', ''RK'', ''RL'', ''RQ'', ''RS'', ''RT'', ''RV'', ''RY'', ''RZ'' |havendienstvaartuigen|
|''Q'' ||lichte vaartuigen<br>(nooit gebruikt)|
■ Aanpassing cf. S 12559/5291 C dd. 15-12-1950:
De afkortingen van drie letters voor scheepsnamen worden vervallen verklaard bij ~MvM nr. 689 (Marcom).
■ Aanpassing 3-cijferige Y-lijst:
In de eerste zes maanden van 1953, hoogstwaarschijnlijk 01-01-1953 of 15-06-1953 werd de Y-lijst aangepast aan de grote hoeveelheid schepen, die dit naamsein kregen toebedeeld.
Geintroduceerd werd de Y-lijst gevolgd door vier cijfers, eveneens beginnend met het landennummer 8.
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Nautilus 1930" Schepen245>>
Naast mijnenlegger was de Nautilus ook ingericht als vaartuig voor politietoezicht op de zeevisserij.<br>Op 14 mei 1940 werd naar Engeland uitgeweken. Op 22 mei 1941 kwam het schip bij Saltfleet in aanvaring met het Britse s.s. Murrayfield en ging verloren. De gehele bemanning werd gered.
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Nautilus 1965" Schepen263>>
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Nautilus 2009" Schepen211>>
In 2008 is de Nautilus verlengd met een 10,5 meter lange middensectie.<br>
Nu eigenlijk Nautilus (2009).
!!! Navigatie
Alle informatie in deze wiki is opgedeeld in relatief kleine informatieblokken, z.g. tiddlers. Deze tiddlers kunnen op verschillende manieren aan elkaar gekoppeld worden.
!!!! Links
Elke tiddler is in principe apart te tonen, b.v. via een link. Klik op de link: [[Over deze wiki]] en merk op dat er een tab `Over deze wiki` in de <<popup "navigatiebalk" "Navigatiebalk-image">> verschijnt.
<<<
''N.B.:''<br>
Dezelfde tiddler is ook te openen via het menu `Algemeen »` > `Over deze wiki`.
<<<
!!!! Tabs
Veel tiddlers zijn via tabs gekoppeld, zoals hier in `Hulp`.<br>
Tabs gedragen zich als //interne// links: bij klikken op een tab in een tiddler verschijnt er ''geen'' nieuwe tab in de navigatiebalk.
In `Hulp` b.v. zitten de tabs:
* [[Pagina-indeling]]
* [[Hulp algemeen]]
* [[Menubalk]]
* [[Navigatiebalk]]
* [[Zoeken|Zoekhulp]]
Klikken op een tab in `Hulp` opent een tab in de navigatiebalk.<br>
De afzonderlijke tiddlers zijn te openen door op de bovenstaande links te klikken. Nu verschijnen er ''wel'' corresponderende tabs in de navigatiebalk.
!! Navigatiebalk
​{{Navigatiebalk-image}}
M.b.v. de navigatiebalk zijn eerder geopende tiddlers snel weer te bekijken. Klik op de gewenste tab in de navigatiebalk en de tiddler wordt weer getoond.
Met de sluitknop (@@color:gray;''x''@@, rechts naast de tab) is een tiddler te sluiten.
<<<
''N.B.:''
* De laatst bekeken tiddler wordt aangegeven als tab met iets donkerder blauw dan de andere tabs
* Vermijd dat er te veel tiddlers in de navigatiebalk open staan.
<<<
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
[[link|http://www.stelling-amsterdam.nl/nieuwsbrief/2008/nieuwsbrief-298/#ZEEBURG]]
<iframe src='http://www.stelling-amsterdam.nl/nieuwsbrief/2008/nieuwsbrief-298/#ZEEBURG' frameborder="0" width="1024"; height="600"></iframe>
!! [[Nederlands-Indische Marine]]
[[dutchfleet|https://www.dutchfleet.nl/showthread.php/4149-History-Nederland-Indische-Marine-1941?highlight=soort+schepen]]
In 1941, aan de vooravond van de Japanse aanval bestond de Nederlands-Indische Marine uit oa:
!!! Kruisers
# [[Java (1925)]]
# [[De Ruyter (1936)]]
# [[Tromp (1938)]]
# [[Sumatra (1926)]] (onderhoud)
# ~~Celebes~~ (niet gebouwd)
!!! Torpedobootjagers
# [[Evertsen (1929)]]
# [[Kortenaer (1928)]]
# [[Piet Hein (1929)]]
# [[Van Ghent (1934)]]
# [[Van Nes (1931)]]
# [[Witte de With (1930)]]
# [[Banckert (1930)]]
!!! vliegbootmoederschip
* [[Reiger (1931)]] [[Tracesofwar|https://www.tracesofwar.nl/articles/2506/Gemilitariseerde-schepen-van-de-Gouvernements-Marine.htm?c=gw]] {{GM}}
!!! Mijnenleggers
# [[Pro Patria (1923)]]
# [[Krakatau (1924)]]
# [[Rigel (1931)]]
# [[Prins van Oranje (1932)]]
# [[Gouden Leeuw (1932)]]
# [[Willem van der Zaan (1939)]]
# ~~Ram~~ (nieuwbouw; in aanbouw)
# ~~Regulus~~ (nieuwbouw; in aanbouw)
!!! Mijnenvegers
# [[Jan van Amstel (1937)]]
# [[Pieter de Bitter (1937)]]
# [[Abraham Crijnssen (1937)]]
# [[Eland Dubois (1937)]]
# [[A (1930)]]
# [[B (1930)]]
# [[C (1930)]]
# [[D (1930)]]
!!! Hulpmijnenveger
# [[Endeh (1941)]] [[Wikipedia|https://nl.wikipedia.org/wiki/Hr.Ms._Endeh_(1941)]]
!!! Torpedowerkschip
# [[Serdang (1897)]]
!!! Onderzeeboten
# [[KVII (1922)]]
# [[KVIII (1922)]]
# [[KIV (1921)]] (gesloopt)
# [[KVII (1922)]] (1921-1942)
# [[KVIII (1922)]] (1922-1942)
# [[KIX (1923)]] (1923-1942)(In Australische dienst van 1943-1944)
# [[KX (1923)]] (1923-1942)
# [[KXI (1925)]] (1925-1945)
# [[KXII (1925)]] (1925-1944)
# [[KXIII (1926)]] (1926-1944)
# [[KXIV (1933)]] (1933-1946)
# [[KXV (1933)]] (1933-1946)
# [[KXVI (1934)]] (1934)]] (1934-1941)
# [[KXVII (1933)]] (1933-1941)
# [[KXVIII (1934)]] (1934-1945)
# [[O16 (1936)]]
# [[O19 (1939)]]
# [[O20 (1939)]]
! Gouvernements marine
Van de 58 vaartuigen zijn er 54 verloren gegaan
!! Diversen
!!! Stoomsleepboot
# `Triton ()`
!!! Hulppatrouilleboot
# `P40 ()`
!!! Patrouilleboot
# `Mastijn ()`
!!! Bewakingsvaartuig
# [[Deneb (1915)]]
!!! Motorsloep
# [[Canopus (1915)]]
!!! Opleidingsschip
# Soerabaja ex-[[De Zeven Provinciën (1910)]]
!!! Kanonneerboot
# [[Soemba (1926)]]
<hr>
!!! Indië
De belangrijkste MLD-basis was Morokrembangan te Soerabaja. Hoofdsteunpunten waren: Tandjong Priok, Ambon, Tarakan, en Prabat met voorts nog kleine drie kleine marinekampen te Tondano, Balikpapan, en Pontianak. Daarnaast beschikte men nog over een groot aantal hulpsteunpunten en @@.h 6 vliegtuigmoederschepen@@ (gemilitariseerde gouvernementsschepen):
* [[Arend (1929)]]
* [[Fazant (1932)]]
* [[Merel (1928)]]
* [[Poolster (1939)]]
* [[Reiger (1931)]]
* [[Valk (1929)]]
!!!! Nederlandse pennantnummers
De Nederlandse marine heeft de beschikking gekregen over de nummers ''800'' t/m ''899'' en voor schepen met de classificatie ''Y'': ''8000'' t/m ''8999''.
|Voorvoegsel |Engelse betekenis |Nederlandse betekenis|h
|A |Auxilliary |hulp- of ondersteuningsvaartuig|
|C |Cruiser |kruiser|
|D |Destroyer (Torpedo Boat) |(torpedoboot)jager|
|F |Frigate |fregat|
|H |Hydrographic |hydrografisch|
|K |Miscellaneous |overige|
|L |Amphibious warfare |landingsvaartuig|
|M |Minesweeper |mijnenveger|
|N |Minelayer |mijnenlegger|
|P |Patrol boat |patrouilleschip|
|R |Aircraft carrier |vliegdekschip|
|S |Submarine |onderzeeboot|
|Y |Yard vessel |haven- of kustvaartuig|
!! Nederlandse torpedomotorboten
In 1929 kwamen vier van deze boten in Nederlandse dienst als Hr. Ms. TM I tot en met Hr. Ms. TM IV.
De Koninklijke Marine bestelde één van deze boten, die in augustus 1939 als Hr. Ms. TM 51 in dienst zou komen. Achttien volgende boten van dit type zouden onder licentie worden gebouwd op de werf van Gusto te Schiedam.
Vervolgens werden enkele MTB's alleen bewapend met mitrailleurs ter bescherming van de MTB's en ontstonden de Motor Gun Boats (MGB's).
De Koninklijke Marine liet in Nederlands Oost-Indië enkele tientallen torpedomotorboten bouwen, die echter nog in aanbouw waren toen de Japanners Java bezetten. Er werden verder twaalf van deze boten besteld bij de Canadian Powerboat Company voor dienst in Nederlands Oost-Indië, maar die konden niet meer voor de val van Java geleverd worden en daarom werden ze in dienst genomen in Nederlands West-Indië. In 1942 kocht Nederland een veertiental MTB's van de British Powerboat Company en Vosper ter vervanging van de onder licentie gebouwde boten bij Gusto, die alle in handen van de Duitsers gevallen waren. Met deze boten oogstte de Koninklijke Marine één van haar grootste successen met torpedomotorboten.
[[Netherlands 01 January 1900|http://www.navypedia.org/retro_view/yesterday_index.htm]]
|AIRCRAFT CARRYING SHIPS|<|<|<|<|h
|type|class|#|#|name & build date|h
|''ACVE''|Gadila|2|1|[[Gadila (1944)]]|
|~|~|~|2|[[Macoma (1944)]]|
|''CVL''|Colossus|1|1|[[Karel Doorman (1948)]] R81|
||||||
|BATTLESHIPS|<|<|<|<|h
|type|class|#|#|name & build date|h
|''Ramtorenschip''|Schorpioen|2|1|[[Schorpioen (1868)]]|
|~|~|~|2|[[Stier (1868)]]|
|''Pantserschip''|Evertsen|3|1|[[Evertsen (1896)]]|
|~|~|~|2|[[Piet Hein (1896)]]|
|~|~|~|3|[[Kortenaer (1895)]]|
|~|Koningin Regentes|3|4|[[Koningin Regentes (1902)]]|
|~|~|~|5|[[De Ruyter (1902)]]|
|~|~|~|6|[[Hertog Hendrik (1904)]]|
|~|Marten Harpertsz. Tromp|1|7|[[Marten Harpertsz. Tromp (1906)]]|
|~|Jacob van Heemskerck|1|8|[[Jacob van Heemskerck (1908)]]|
|~|De Zeven Provinciën|1|9|[[De Zeven Provinciën (1910)]]|
|''Monitor''|Heiligerlee|2|1|[[Heiligerlee (1868)]]|
|~|~|~|2|[[Krokodil (1870)]]|
|~|Bloedhond|2|3|[[Bloedhond (1870)]]|
|~|~|~|4|[[Cerberus (1870)]]|
|~|Adder|6|5|[[Adder (1875)]]|
|~|~|~|6|[[Haai (1872)]]|
|~|~|~|7|[[Hyena (1874)]]|
|~|~|~|8|[[Luipaard (1888)]]|
|~|~|~|9|[[Panter (1870)]]|
|~|~|~|10|[[Wesp (1872)]]|
|~|Draak|1|11|[[Draak (1878)]]|
|~|Matador|1|12|[[Matador (1879)]]|
|~|Reinier Claeszen|1|13|[[Reinier Claeszen (1894)]]|
||||||
|CRUISERS|<|<|<|<|h
|type|class|#|#|name & build date|h
|''Pantserdekschip''|Sumatra|1|1|[[Sumatra (1891)]]|
|~|Koningin Wilhelmina der Nederlanden|1|2|[[Koningin Wilhelmina der Nederlanden (1894)]]|
|~|Holland|6|3|[[Holland (1898)]]|
|~|~|~|4|[[Zeeland (1898)]]|
|~|~|~|5|[[Friesland (1898)]]|
|~|~|~|6|[[Gelderland (1900)]]|
|~|~|~|7|[[Noordbrabant (1900)]]|
|~|~|~|8|[[Utrecht (1900)]]|
|''Kruisers''|Java|2|1|[[Java (1925)]]|
|~|~|~|2|[[Sumatra (1926)]]|
|~|De Ruyter|1|1|[[De Ruyter (1936)]]|
|~|Tromp|2|1|[[Tromp (1938)]] C804|
|~|~|~|2|[[Jacob van Heemskerck (1940)]] C803|
|''Schroefstoomschip''|Alkmaar|1|1|[[Alkmaar (1874)]]|
|~|Atjeh|3|2|[[Atjeh (1877)]]|
|~|~|~|3|[[Tromp (1882)]]|
|~|~|~|4|[[Koningin Emma der Nederlanden (1880)]]|
||Sommelsdijk|1|5|[[Sommelsdijk (1884)]]|
||Java|1|6|[[Java (1886)]]|
|TORPEDO SHIPS|<|<|<|<|h
|type|class|#|#|name & build date|h
|''Tb1cl''|Ardjoeno|11|1|[[Ardjoeno (1887)]]|
|~|~|~|2|[[Dempo (1887)]]|
|~|~|~|3|[[Habang (1888)]]|
|~|~|~|4|[[Krakatau (1888)]]|
|~|~|~|5|[[Cycloop (1888)]]|
|~|~|~|6|[[Batok (1889)]]|
|~|~|~|7|[[Foka (1890)]]|
|~|~|~|8|[[Idjen (1889)]]|
|~|~|~|9|[[Empong (1890)]]|
|~|~|~|10|[[Goentoer (1892)]]|
|~|~|~|11|[[Cerberus (1888)]]|
|~|Lamongan|3|1|[[Lamongan (1891)]]|
|~|~|~|2|[[Makjan (1891)]]|
|~|~|~|3|[[Nobo (1891)]]|
|~|Hydra|5|1|[[Hydra (1900)]]|
|~|~|~|2|[[Scylla (1900)]]|
|~|~|~|3|[[Minotaurus (1900)]]|
|~|~|~|4|[[Python (1902)]]|
|~|~|~|5|[[Sphinx (1903)]]|
|~|Ophir|6|1|[[Ophir (1901)]]|
|~|~|~|2|[[Pangrango (1901)]]|
|~|~|~|3|[[Rindjani (1901)]]|
|~|~|~|4|[[Smeroe (1903)]]|
|~|~|~|5|[[Tangka (1903)]]|
|~|~|~|6|[[Wajang (1903)]]|
|~|G-klasse|16|1|[[Johan van Brakel (1905)]] (G1)|
|~|~|~|2|[[Jan Danielzoon van der Rijn (1905)]] (G2)|
|~|~|~|3|[[Meijndert Jentjes (1905)]] (G3)|
|~|~|~|4|[[Willem Willemsze (1905)]] (G4)|
|~|~|~|5|[[Roemer Vlacq (1906)]] (G5)|
|~|~|~|6|[[Pieter Constant (1906)]] (G6)|
|~|~|~|7|[[Jacob Clydijck (1904)]] (G7)|
|~|~|~|8|[[Cornelis Janssen de Haan (1906)]] (G8)|
|~|~|~|9|[[G9 (1904)]]|
|~|~|~|10|[[G10 (1908)]]|
|~|~|~|11|[[G11 (1908)]]|
|~|~|~|12|[[G12 (1908)]]|
|~|~|~|13|[[G13 (1914)]]|
|~|~|~|14|[[G14 (1914)]]|
|~|~|~|15|[[G15 (1914)]]|
|~|~|~|16|[[G16 (1914)]]|
|~|Draak|3|30|[[Draak (1907)]]|
|~|~|~|31|[[Krokodil (1907)]]|
|~|~|~|32|[[Zeeslang (1907)]]|
|~|Z1-klasse|4|1|[[Z1 (1919)]]|
|~|~|~|2|[[Z2 (1921)]]|
|~|~|~|3|[[Z3 (1920)]]|
|~|~|~|4|[[Z4 (1920)]]|
|~|Z5-klasse|4|1|[[Z5 (1917)]]|
|~|~|~|2|[[Z6 (1917)]]|
|~|~|~|3|[[Z7 (1916)]]|
|~|~|~|4|[[Z8 (1916)]]|
|~|''Admiralenklasse (1)''|4|1|[[Kortenaer (1928)]]|
|~|~|~|2|[[Piet Hein (1929)]]|
|~|~|~|3|[[Evertsen (1929)]]|
|~|~|~|4|[[Van Ghent (1934)]]|
|~|''Admiralenklasse (2)''|4|1|[[Banckert (1930)]]|
|~|~|~|2|[[Van Galen (1929)]]|
|~|~|~|3|[[Van Nes (1931)]]|
|~|~|~|4|[[Witte de With (1930)]]|
|''Tb2cl''|I|1|1|[[I (1876)]]|
|~|II|1|2|[[II (1877)]]|
|~|III|1|3|[[III (1876)]]|
|~|IV|1|4|[[IV (1879)]]|
|~|V|5|5|[[V (1879)]]|
|~|~|~|6|[[VI (1879)]]|
|~|~|~|7|[[VII (1879)]]|
|~|~|~|8|[[VIII (1879)]]|
|~|~|~|9|[[IX (1879)]]|
|~|X|3|10|[[X (1879)]]|
|~|~|~|11|[[XI (1879)]]|
|~|~|~|12|[[XII (1879)]]|
|~|XIII|6|13|[[XIII (1879)]]|
|~|~|~|14|[[XIV (1879)]]|
|~|~|~|15|[[XV (1881)]]|
|~|~|~|16|[[XVI (1881)]]|
|~|~|~|17|[[XVII (1880)]]|
|~|~|~|18|[[XVIII (1881)]]|
|~|XIX|2|19|[[XIX (1881)]]|
|~|~|~|20|[[XX (1881)]]|
|~|Etna|2|21|[[Etna (1892)]]|
|~|~|~|22|[[Hekla (1891)]]|
|~|Jan Haring|3|23|[[Jan Haring (1891)]]|
|~|~|~|24|[[Jacob Hobein (1891)]]|
|~|~|~|25|[[Jasper Lijnsen (1891)]]|
|~|K-klasse|3|26|[[Michiel Gardeijn (1905)]]|
|~|~|~|27|[[Christiaan Cornelis (1905)]]|
|~|~|~|28|[[Willem Warmont (1905)]]|
|''DD''|Wolf|8|1|[[Bulhond (1912)]]|
|~|~|~|2|[[Fret (1911)]]|
|~|~|~|3|[[Hermelijn (1913)]]|
|~|~|~|4|[[Jakhals (1912)]]|
|~|~|~|5|[[Lynx (1913)]]|
|~|~|~|6|[[Panter (1914)]]|
|~|~|~|7|[[Vos (1914)]]|
|~|~|~|8|[[Wolf (1911)]]|
|~|Van Galen|2|1|[[Van Galen (1942)]] D803|
|~|~|~|2|[[Tjerk Hiddes (1942)]] D806|
|~|Banckert|1|1|[[Banckert (1945)]] D801|
|~|Evertsen|3|1|[[Evertsen (1946)]] D802|
|~|~|~|2|[[Kortenaer (1945)]] D804|
|~|~|~|3|[[Piet Hein (1945)]] D805|
|SUBMARINES|<|<|<|<|h
|type|class|#|#|name & build date|h
|SS|O1|1|1|[[O1 (1906)]]|
|~|O2|4|1|[[O2 (1911)]]|
|~|~|~|2|[[O3 (1913)]]|
|~|~|~|3|[[O4 (1914)]]|
|~|~|~|4|[[O5 (1914)]]|
|~|O6|1|1|[[O6 (1916)]]|
|~|O7|1|1|[[O7 (1916)]]|
|~|O8|1|1|[[O8 (1917)]]|
|~|O9|3|1|[[O9 (1926)]]|
|~|~|~|2|[[O10 (1926)]]|
|~|~|~|3|[[O11 (1926)]]|
|~|O12|4|1|[[O12 (1931)]]|
|~|~|~|2|[[O13 (1931)]]|
|~|~|~|3|[[O14 (1932)]]|
|~|~|~|3|[[O15 (1932)]]|
|~|O16|1|1|[[O16 (1936)]]|
|~|O19|2|1|[[O19 (1939)]]|
|~|~|~|2|[[O20 (1939)]]|
|~|O21|5|1|[[O21 (1940)]] S801|
|~|~|~|2|[[O22 (1940)]]|
|~|~|~|2|[[O23 (1940)]]|
|~|~|~|2|[[O24 (1940)]] S804|
|~|~|~|2|[[O27 (1945)]] S807|
|~|KI|1|1|[[KI (1914)]]|
|~|KII|1|1|[[KII (1922)]]|
|~|KIII|2|1|[[KIII (1920)]]|
|~|~|~|1|[[KIV (1921)]]|
|~|KV|3|1|[[KV (1920)]]|
|~|~|~|2|[[KVI (1921)]]|
|~|~|~|3|[[KVII (1922)]]|
|~|KVIII|3|1|[[KVIII (1922)]]|
|~|~|~|2|[[KIX (1923)]]|
|~|~|~|3|[[KX (1923)]]|
|~|KXI|3|1|[[KXI (1925)]]|
|~|~|~|2|[[KXII (1925)]]|
|~|~|~|3|[[KXIII (1926)]]|
|~|KXIV|5|1|[[KXIV (1933)]]|
|~|~|~|2|[[KXV (1933)]]|
|~|~|~|3|[[KXVI (1934)]]|
|~|~|~|4|[[KXVII (1933)]]|
|~|~|~|5|[[KXVIII (1934)]]|
|~|M1|1|1|[[M1 (1917)]]|
|~|Dolfijn|1|1|[[Dolfijn (1942)]] S811|
|~|Zeehond|2|1|[[Zeehond (1943)]] S813|
|~|~|~|2|[[Tijgerhaai (1945)]] S812|
|~|Zwaardvisch|1|1|[[Zwaardvisch (1943)]] S814|
|ESCORTS|<|<|<|<|h
|type|class|#|#|name & build date|h
|''AFPV''|Dolfijn|1|1|[[Dolfijn (1889)]]|
|~|Zeehond|1|1|[[Zeehond (1892)]]|
|~|Cornelis Drebbel|1|1|[[Cornelis Drebbel (1915)]]|
|''PC''|Albatros|1|1|[[Albatros (1912)]]|
|~|Orion|1|1|[[Orion (1912)]]|
|~|Aldebaran|1|1|[[Aldebaran (1913)]]|
|~|Bellatrix|3|1|[[Bellatrix (1914)]]|
|~|~|~|2|[[Canopus (1915)]]|
|~|~|~|3|[[Deneb (1915)]]|
|~|Eridanus|1|1|[[Eridanus (1918)]]|
|~|Gemma|1|1|[[Gemma (1918)]]|
|~|Sirius|2|1|[[Sirius (1922)]]|
|~|~|~|2|[[Wega (1923)]]|
|~|Fomalhaut|1|1|[[Fomalhaut (1923)]]|
|~|Merel|1|1|[[Merel (1928)]]|
|~|~|~|2|[[Reiger (1931)]]|
|~|~|~|3|[[Fazant (1932)]]|
|~|Arend|2|1|[[Arend (1929)]]|
|~|~|~|2|[[Valk (1929)]]|
|''SL''|Van Kinsbergen|1|1|[[Van Kinsbergen (1939)]] F804|
|''FF''|Johan Maurits van Nassau|1|1|[[Johan Maurits van Nassau (1943)]]|
|''PC''|Queen Wilhelmina|1|1|[[Queen Wilhelmina (1942)]] P801|
|''FF''|Marnix|1|1|[[Marnix (1947)]] F801|
|~|Johan Maurits van Nassau|1|1|[[Johan Maurits van Nassau (1943)]] F802|
|~|Van Speijk|1|1|[[Van Speijk (1946)]] F805|
|COASTAL FORCES|<|<|<|<|h
|type|class|#|#|name & build date|h
|''PT''|TM1|4|1|`TMI (1927)`|
|~|~|~|2|`TMII (1927)`|
|~|~|~|3|`TMIII (1928)`|
|~|~|~|4|`TMIV (1928)`|
|~|TMIII|1|1|[[TMIII (1938)]]|
|~|TM51|1|1|[[TM51 (1939)]]|
|~|TM22|4|1|[[TM22 (1942)]]|
|~|~|~|2|[[TM28 (1942)]]|
|~|~|~|3|[[TM29 (1942)]]|
|~|~|~|4|[[TM30 (1942)]]|
|~|MTB222|5|1|[[MTB229 (1943)]] Gier|
|~|~|~|2|[[MTB231 (1943)]] Stormvogel|
|~|~|~|3|[[MTB235 (1942)]] Sperwer|
|~|~|~|4|[[MTB236 (1943)]] Havik|
|~|~|~|5|[[MTB240 (1942)]] Buizerd|
|~|MTB418|5|1|[[MTB418 (1944)]]|
|~|~|~|2|[[MTB432 (1944)]]|
|~|~|~|3|[[MTB433 (1943)]]|
|~|~|~|4|[[MTB436 (1944)]]|
|~|~|~|4|[[MTB437 (1944)]]|
|~|RJ2|1|1|`RJ2 (1943)` P884|
|''YP''|P1|4|1|`P1 (1939)`|
|~|~|~|2|`P2 (1939)`|
|~|~|~|3|`P3 (1939)`|
|~|~|~|4|`P4 (1939)`|
|~|P9|4|1|`P11 (1940)`|
|~|~|~|2|`P12 (1940)`|
|~|~|~|3|`P15 (1941)`|
|~|~|~|4|`P16 (1941)`|
|~|TM22|2|1|`PMB26 (1942)`|
|~|~|~|2|`PMB33 (1943)`|
|~|Fairmile B|3|1|`RI1 (1940)`|
|~|~|~|2|`RI2 (1940)`|
|~|~|~|3|`MV42 (1941)`|
|~|HDML|16||P821-825, RP103-105, 109, 111, 112,114-118|
|''PS''|OJR1|2|1|[[H7 (1942)]]|
|~|~|~|2|[[H8 (1942)]]|
|OTHER FIGHTING SHIPS|<|<|<|<|h
|type|class|#|#|name & build date|h
|''Schroefstoomschip''|Aruba|1|1|[[Aruba (1873)]]|
|~|Batavia|4|2|[[Makasser (1877)]]|
|~|~|~|3|[[Madura (1880)]]|
|~|~|~|4|[[Bonaire (1877)]]|
|~|~|~|5|[[Bali (1878)]]|
|~|Suriname|1|6|[[Suriname (1877)]]|
|~|Ceram|2|7|[[Ceram (1887)]]|
|~|~|~|8|[[Flores (1887)]]|
|~|Lombok|2|9|[[Lombok (1891)]]|
|~|~|~|10|[[Sumbawa (1891)]]|
|~|Borneo|1|11|[[Borneo (1892)]]|
|~|Nias|4|12|[[Nias (1895)]]|
|~|~|~|13|[[Mataram (1896)]]|
|~|~|~|14|[[Edi (1897)]]|
|~|~|~|15|[[Serdang (1897)]]|
|~|Koetei|2|16|[[Koetei (1898)]]|
|~|~|~|17|[[Siboga (1898)]]|
|~|~|~|18|[[Assahan (1900)]]|
|''Kanonneerboot''|Hydra|14|1|[[Bever (1876)]]|
|~|~|~|2|[[Brak (1875)]]|
|~|~|~|3|[[Das (1876)]]|
|~|~|~|4|[[Dog (1874)]]|
|~|~|~|5|[[Ever (1873)]]|
|~|~|~|6|[[Fret (1876)]]|
|~|~|~|7|[[Geep (1875)]]|
|~|~|~|8|[[Gier (1875)]]|
|~|~|~|9|[[Havik (1874)]]|
|~|~|~|10|[[Hydra (1873)]]|
|~|~|~|11|[[Lynx (1875)]]|
|~|~|~|12|[[Raaf (1875)]]|
|~|~|~|13|[[Sperwer (1875)]]|
|~|~|~|14|[[Vos (1875)]]|
|~|Thor|16|1|[[Balder (1879)]]|
|~|~|~|2|[[Braga (1879)]]|
|~|~|~|3|[[Bulgia (1884)]]|
|~|~|~|4|[[Dufa (1879)]]|
|~|~|~|5|[[Freyr (1877)]]|
|~|~|~|6|[[Hadda (1880)]]|
|~|~|~|7|[[Hefring (1880)]]|
|~|~|~|8|[[Heimdall (1879)]]|
|~|~|~|9|[[Njord (1878)]]|
|~|~|~|10|[[Thor (1877)]]|
|~|~|~|11|[[Tyr (1878)]]|
|~|~|~|12|[[Udur (1879)]]|
|~|~|~|13|[[Ulfr (1879)]]|
|~|~|~|14|[[Vali (1879)]]|
|~|~|~|15|[[Vidar (1879)]]|
|~|~|~|16|[[Wodan (1877)]]|
|~|Vahalis|1|1|[[Vahalis (1870)]]|
|~|Isala|4|1|[[Isala (1876)]]|
|~|~|~|2|[[Merva (1879)]]|
|~|~|~|3|[[Mosa (1876)]]|
|~|~|~|4|[[Rhenus (1877)]]|
|~|Brinio|3|1|[[Brinio (1914)]]|
|~|~|~|1|[[Friso (1915)]]|
|~|~|~|1|[[Gruno (1915)]]|
|~|Flores|2|1|[[Flores (1926)]] F803|
|~|~|~|2|[[Soemba (1926)]]|
|~|Johan Maurits van Nassau|1|1|[[Johan Maurits van Nassau (1933)]]|
|MIJNEN---|<|<|<|<|h
|type|class|#|#|name & build date|h
|''Mijnenlegger''<br>''ML''|Hydra|2|1|[[Hydra (1912)]]|
|~|~|~|2|[[Medusa (1911)]]|
|~|Van Meerlant|2|1|[[Van Meerlant (1922)]]|
|~|~|~|2|[[Douwe Aukes (1922)]]|
|~|Pro Patria|1|1|[[Pro Patria (1923)]]|
|~|Krakatau|1|1|[[Krakatau (1924)]]|
|~|Nautilus|1|1|[[Nautilus (1930)]]|
|~|Rigel|1|1|[[Rigel (1931)]]|
|~|Prins van Oranje|1|1|[[Prins van Oranje (1932)]]|
|~|Gouden Leeuw|1|1|[[Gouden Leeuw (1932)]]|
|~|Jan van Brakel|1|1|[[Jan van Brakel (1936)]] P5|
|~|Willem van der Zaan|1|1|[[Willem van der Zaan (1939)]] ML2|
|''AML''|Hercules|1|1|[[Hercules (1919)]]|
|''Mijnenveger''<br>''MS''|M1|4|1|[[M1 (1918)]]|
|~|~|~|2|[[M2 (1918)]]|
|~|~|~|3|[[M3 (1918)]]|
|~|~|~|4|[[M4 (1918)]]|
|~|A|4|1|[[A (1930)]]|
|~|~|~|2|[[B (1930)]]|
|~|~|~|3|[[C (1930)]]|
|~|~|~|4|[[D (1930)]]|
|~|Jan van Amstel|9|1|[[Abraham Crijnssen (1937)]] M801|
|~|~|~|2|[[Abraham van der Hulst (1937)]]|
|~|~|~|3|[[Abraham van der Hulst (1946)]] M802|
|~|~|~|4|[[Eland Dubois (1937)]]|
|~|~|~|5|[[Jan van Amstel (1937)]]|
|~|~|~|6|[[Jan van Gelder (1937)]] M803|
|~|~|~|7|[[Pieter de Bitter (1937)]]|
|~|~|~|8|[[Pieter Florisz (1937)]] M804|
|~|~|~|9|[[Willem van Ewijck (1937)]]|
|~|Alor|6|1|[[Alor (1939)]]|
|~|~|~|2|[[Aroe (1939)]]|
|~|~|~|3|[[Bantam (1939)]]|
|~|~|~|4|[[Bogor (1939)]]|
|~|~|~|5|[[Ceram (1939)]]|
|~|~|~|6|[[Cheribon (1939)]]|
|~|Bathurst|8|1|[[Ambon (1946)]] MV21|
|~|~|~|2|[[Banda (1946)]] MV22|
|~|~|~|3|[[Batjan (1946)]] MV25|
|~|~|~|4|[[Boeroe (1946)]] MV26|
|~|~|~|5|[[Ceram (1946)]] MV27|
|~|~|~|6|[[Morotai (1946)]] MV15|
|~|~|~|7|[[Ternate (1946)]] MV23|
|~|~|~|8|[[Tidore (1946)]] MV24|
|~|Texel|10|1|[[Ameland (1942)]] M861|
|~|~|~|2|[[Beveland (1943)]] M862|
|~|~|~|3|[[Marken (1943)]]|
|~|~|~|4|[[Marken (1944)]] M863|
|~|~|~|5|[[Putten (1943)]] M864|
|~|~|~|6|[[Rozenburg (1943)]] M865|
|~|~|~|7|[[Terschelling (1942)]]|
|~|~|~|8|[[Terschelling (1943)]] M866|
|~|~|~|9|[[Texel (1942)]] M867|
|~|~|~|10|[[Vlieland (1942)]] M868|
|~|Tholen|8|1|[[Duiveland (1944)]] M821|
|~|~|~|2|[[Overflakkee (1944)]] M822|
|~|~|~|3|[[Schokland (1944)]]|
|~|~|~|4|[[Tholen (1943)]] M823|
|~|~|~|5|[[Voorne (1943)]] M824|
|~|~|~|6|[[Walcheren (1943)]]|
|~|~|~|7|[[Wieringen (1943)]]|
|~|~|~|8|[[IJsselmonde (1943)]] M825|
|~|BYMS|10|1|[[Borndiep (1946)]] M831|
|~|~|~|2|[[Deurloo (1946)]] M832|
|~|~|~|3|[[Hollandsch Diep (1946)]] M833|
|~|~|~|4|[[Marsdiep (1947)]] M834|
|~|~|~|5|[[Oosterschelde (1947)]] M835|
|~|~|~|6|[[Texelstroom (1947)]] M836|
|~|~|~|7|[[Vliestroom (1947)]] M837|
|~|~|~|8|[[Volkerak (1946)]] M838|
|~|~|~|9|[[Westerschelde (1946)]] M839|
|~|~|~|10|[[Zuiderdiep (1947)]] M840|
|~|DEFG|7|1|[[Djombang (1941)]] HMV20|
|~|~|~|2|[[Djampea (1941)]]|
|~|~|~|3|[[Enggano (1941)]] HMV21|
|~|~|~|4|`Flores` (onafgebouwd)|
|~|~|~|5|`Fakfak` (onafgebouwd)|
|~|~|~|6|`Garoet` (onafgebouwd)|
|~|~|~|7|`Grissee` (onafgebouwd)|
|~|R218|9|1|[[Goeree (1947)]] M869|
|~|~|~|2|[[Malzwin (1947)]] M870|
|~|~|~|3|[[Schiermonnikoog (1947)]] M872|
|~|~|~|4|[[Schouwen (1947)]] M873|
|~|~|~|5|[[Schulpengat (1947)]] M874|
|~|~|~|6|[[Stortemelk (1947)]] M875|
|~|~|~|7|[[Urk (1947)]] M876|
|~|~|~|8|[[Vlieter (1947)]] M877|
|~|~|~|9|[[Walcheren (1947)]] M878|
|~|R401|1|1|[[Roompot (1947)]] M871|
|''AMS''|Alkmaar|11|1|[[Alkmaar (1939)]]|
|~|~|~|2|[[Aneta (1939)]]|
|~|~|~|3|[[Azimuth (1939)]]|
|~|~|~|4|[[En Avant (1939)]] @@.C dubbel@@|
|~|~|~|5|[[Ewald (1939)]] @@.C dubbel@@|
|~|~|~|6|[[Hollandia (1939)]]|
|~|~|~|7|[[Maria R. Ommering (1939)]]|
|~|~|~|8|[[Noordsvaarder (1939)]] @@.C dubbel@@|
|~|~|~|9|[[Rotterdam (1939)]]|
|~|~|~|10|[[Walrus (1939)]]|
|~|~|~|11|[[Witte Zee (1939)]]|
|~|-|12|1|[[Claesje (1940)]]|
|~|~|~|2|[[Dirkje (1940)]]|
|~|~|~|3|[[Goeree (1942)]]|
|~|~|~|4|[[En Avant (1939)]] @@.C dubbel@@|
|~|~|~|5|[[Ewald (1939)]] @@.C dubbel@@|
|~|~|~|6|[[Gerberdina Johanna (1940)]]|
|~|~|~|7|[[Maria Elizabeth (1941)]]|
|~|~|~|8|[[Noordsvaarder (1939)]] @@.C dubbel@@|
|~|~|~|9|[[Vikingbank (1940)]]|
|~|~|~|10|`Enen (1929)`|
|~|~|~|11|`Femern (1930)`|
|~|~|~|12|`Toern (1932)`|
|''MSB''|Smeroe|3|1|[[Smeroe (1941)]]|
|~|~|~|2|[[Merbaboe (1941)]]|
|~|~|~|3|[[Rindjani (1941)]]|
|AMPHIBIOUS|<|<|<|<|h
|type|class|#|#|name & build date|h
|''LST''|LST(1)|1|1|`LST2 (1943)` Pelikaan|
|''LCU''|MFP-A|3|1|`LT110 (1941)`|
|~|~|~|2|`LT111 (1941)`|
|~|~|~|3|`LT112 (1941)`|
|~|LCT(4)|6|1|L9607/LT101 (1944)|
|~|~|~|2|L9608/LT102 (1944)|
|~|~|~|3|L9609/LT103 (1944)|
|~|~|~|4|L9610/LT104 (1944)|
|~|~|~|5|L9611/LT105 (1944)|
|~|~|~|6|L9612/LT106 (1944)|
|~|LCT(3)|6|1|L9601/LT5 (1944)|
|~|~|~|2|L9602/LT6 (1944)|
|~|~|~|3|L9603/LT7 (1944)|
|~|~|~|4|L9604/LT8 (1945)|
|~|~|~|5|L9605/LT9 (1945)|
|~|~|~|6|L9606/LT10 (1945)|
|''LCF''|LCI(G)|5|1|`Zeearend (1944)` {{GM}}|
|~|~|~|2|`Tropenvogel (1943)` {{GM}}|
|~|~|~|3|`Zeemeeuw (1944)` {{GM}}|
|~|~|~|4|`Stormvogel (1944)` {{GM}}|
|~|~|~|5|`IJsvogel (1944)` {{GM}}|
|''LC''|LCM(3)|22||L9661-9665, LU111-114, A-O (1942-1944)|
|~|LCA|4||L9501-9504 (1942-1944)|
||||||
||||||
||||||
!!! Netpoortschip
Nettenlegger, hulpschip voor het aanbrengen en onderhouden van netversperringen in de zeegaten.
<<w>>
!!! Nettenwerkschip
Een nettenwerkschip legt versperringen (netten) aan.
<<w 420px>>
Heeft dienst gedaan in Nederlands-Indië.
{{NI}}<br>In 1907 naar Gouvernementsmarine.
!!! Nieuw toegevoegd de laatste jaren/maanden
<<tabs "2019 2018 2017" "2017">>
* [[Historische Catalina gaat in de verkoop|https://www.omroepflevoland.nl/nieuws/162593/historische-catalina-gaat-in-de-verkoop]]
* [[Motor Catalina kapot, alle rondvluchten geannuleerd|https://www.omroepflevoland.nl/nieuws/162824/motor-catalina-kapot-alle-rondvluchten-geannuleerd]]
Nederlands Instituut voor Militaire Historie
Nieuw Luchtverdedigings Fregat
! [[Non-naval forces]]
!! Army
# ''RV40 (1979)'' small landing ship (1979)
!! Coast guard (fisheries protection)
# ''Barend Biesheuvel (2001)'' kustwacht
# ''Visarend (2001)'' kustwacht
# ''Zeearend (2002)'' kustwacht
!! Coast guard of Netherlands Antilles and Aruba
# PB1 patrol boats (1970s)
#* P1 - 4, later PB1-4 (197x) (Curacao)
# JAGUAR patrol craft (1998-1999)
#* [[Jaguar (1999)]]
#* [[Panter (1999)]]
#* [[Poema (1999)]]
!! Gendarmerie (Koninklijke Marechaussee)
# RV165 patrol boats
#* ''RV165 (1975)''
#* ''RV166 (1984''
#* ''RV169 (1975)''
# DRECHTSTEDEN patrol boat (2005)
#* ''RV160 (2005)'' Drechtsteden
# KATTENBURG patrol boats (2007)
#* ''RV161 (2007)'' Kattenburg
#* ''RV162 (2007)'' Wycker Meer
# GLINDER patrol craft (2008)
#* ''RV180 (2008)'' Glinder
!! Customs
# GROTE STERN patrol boat (1995)
#* ''Grote Stern (1995)''
# JAN VAN GENT patrol boat (2000)
#* ''Jan van Gent (2000)''
# STORMMEEUW patrol craft (2003)
#* ''Stormmeeuw (2003)''
# KOKMEEUW patrol boats (2004-2005)
#* ''Kokmeeuw (2004-2005)''
#* ''Mantelmeeuw (2004-2005)''
#* ''Zilvermeeuw (2004-2005)''
In 1974 midscheepse aanvaring bij Vlissingen; te zwaar beschadigd voor reparatie.
{{||$:/_ship_template}}
* <<slider "Noordbrabant ca. 1925" Schepen035>>
In 1925 ontwapend en omgebouwd tot logementsschip.
ex Panadero, Glucksberg, Falkenstein (1897).<br>De ''Noordsvaarder'' (Wikipedia ''Noordvaarder'') werd op 19 december 1939 gevorderd, aangepast en in dienst gesteld als Bewakingsvaartuig 1 (BV1). Op 17 mei kon de oude zeesleper ontkomen naar Engeland en werd als transportschip gebruikt bij de mijnendienst. Van april 1942 tot en met april 1944 deed het schip dienst als communicatievaartuig. Daarna werd het oude schip gebruikt als boeienlegger. In 1945 keerde de aangepaste zeesleper terug naar Nederland. Na de oorlog gebruikte de Koninklijke Marine het vaartuig als havensleepboot totdat het op 9 oktober 1947 terug gegeven werd aan de oorspronkelijke eigenaar: N.V. Scheepvaart Mij. G. Doeksen te Terschelling.
Tijdens de Duitse aanval op Nederland in 1940 patrouilleerde de O 13 voor de Nederlandse kust en werd het schip meermalen aangevallen door Duitse vliegtuigen.<br>
Op 10 mei 1940 vertrok de O 13 onder begeleiding van de mijnenveger Jan van Gelder naar ~Zuid-Engeland. Op 11 mei 1940 arriveerden deze schepen 's middags in het Engelse Portsmouth.<br>
Tijdens de evacuatie van Duinkerken en Bordeaux patrouilleerde de O 13 in het Kanaal.<br>
Na de val van Frankrijk werd Portsmouth niet langer meer als veilig beschouwd; daarom werd de O 13 samen met andere Nederlandse onderzeeboten. de O 20, de O 21, de O 23 en de O 24 overgeplaatst naar de tijdelijke haven in het Schotse Dundee. Vanuit Dundee voer de O 13 patrouilles uit op de Atlantische Oceaan en de Noordzee.<br>
Op 20 juni 1940 werd de O 13 terug verwacht van een van haar patrouilles. Toen op 25 juni de O 13 nog niet terug was in Dundee, werd ze als vermist vermeld.<br>
Omdat na de oorlog in Duitse archieven geen informatie is gevonden over het eventueel tot zinken brengen van de O 13, wordt algemeen aangenomen dat de O 13 op een mijn is gelopen. Wat deze theorie ondersteunt, is het feit dat er een Duits mijnenveld lag in het gebied waar de O 13 de patrouilles uitvoerde. Dit mijnenveld is mogelijk hetzelfde waar ook de Poolse duikboot Orzel verloren is gegaan. Een andere mogelijkheid is dat de O 13 door de Poolse duikboot Wilk is geramd. De Wilk rapporteerde een onbekende vijandige duikboot te hebben geramd op 20 juni 1940.
{{||$:/_ship_template}}
* <<slider "Duikboot O1 1907" Schepen095>>
De eerste duikboot van de Nederlandse marine, de 'Luctor et Emergo' (later O1. Gebouwd door maatschappij De Schelde in Vlissingen.<br>
Tot 1914 voor de bovenwatervaart aangedreven door 2x 160 pk 2-takt benzine Otto motoren. In 1914 vervangen door 2x 200 pk MAN dieselmotoren.
{{||$:/_ship_template}}
* <<slider "Duikboot O10 1926" Schepen060>>
* <<slider "Duikboot O10 1926" Schepen062>>
* <<slider "Duikboten O9, O10 & O11 ca. 1935" Schepen002>>
''O10'', bouwnummer 169 gebouwd op de nieuwe werf van de Nederlandsche Scheepsbouw Maatschappij (N.S.M.), Cornelis Douwesweg 1, in opdracht van de Koninklijke Marine.<br>
Met de kiellegging van de O10 werd gestart in oktober 1922.<br>
Het is het eerste schip dat werd gebouwd op de nieuwe werf aan de noordzijde van het IJ.<br>
Tevens is het de enige duikboot die door de N.S.M. is gebouwd.
{{||$:/_ship_template}}
* <<slider "Duikboten O9 & O11 1930" Schepen109>>
* <<slider "Duikboten O9, O10 & O11 ca. 1935" Schepen002>>
* <<slider "Duikboten O13, O11 & O15 1938" Schepen063>>
{{||$:/_ship_template}}
* <<slider "Duikboten O13, O11 & O15 1938" Schepen63>>
{{||$:/_ship_template}}
* <<slider "Duikboten O13 & O14 ca. 1935" Schepen001>>
* <<slider "Duikboot O13 1936" Schepen054>>
* <<slider "Duikboot O13 1936" Schepen055>>
* <<slider "Duikboten O13, O11 & O15 1938" Schepen063>>
{{||$:/_ship_template}}
* <<slider "Duikboten O13 & O14 ca. 1935" Schepen001>>
{{||$:/_ship_template}}
* <<slider "Duikboten O13, O11 & O15 1938" Schepen063>>
{{||$:/_ship_template}}
* <<slider "Duikboot O16 1939" Schepen056>>
De O16 was voorzien van een (prototype) snorkel (snuiverinstallatie).<br>
Is in 1941 op een Japanse mijn gelopen voor de oostkust van Maleisië.
{{||$:/_ship_template}}
* <<slider "Duikboot O19 ca. 1943" Schepen446>>
{{NI}}<br>O19 en O20 waren de eerste 'echte' <<popup onderzeeboten Duikboot>> met een goed werkende snuiverinstallatie (snorkel).<br>
Het waren beide mijnenleggende onderzeeboten, besteld als KXIX en KX, maar hernoemd tot O19 en O20 toen besloten was geen onderscheid meer te maken tussen 'koloniale' en andere duikboten/onderzeeboten.
{{||$:/_ship_template}}
* <<slider "Duikboot O2 1911" Schepen096>>
{{||$:/_ship_template}}
* <<slider "Onderzeeboot O20, 1939" Schepen036>>
{{NI}}<br>O19 en O20 waren de eerste 'echte' <<popup onderzeeboten Duikboot>> met een goed werkende snuiverinstallatie (snorkel).<br>
Het waren beide mijnenleggende onderzeeboten, besteld als KXIX en KX, maar hernoemd tot O19 en O20 toen besloten was geen onderscheid meer te maken tussen 'koloniale' en andere duikboten/onderzeeboten.<br>
Op 19 december 1941 werd de onderzeeboot O20, onder commando van de luitenant-ter-zee der eerste klasse P.J.C. Snippe en onder Brits operationeel bevel (Eastern Fleet), op 35 mijl ten noordoosten van Kota Bahru (oostkust van Maleisië) door de Japanse torpedobootjager Uranami met dieptebommen aangevallen en beschadigd, waarna het door de eigen bemanning tot zinken werd gebracht.
{{||$:/_ship_template}}
* <<slider "Onderzeeboot O21, 1941" Schepen061>>
De O21, O22, O23 en O24 konden in de meidagen van 1940 - onafgebouwd - ontsnappen naar Engeland waar ze afgebouwd werden.<br>
De onafgebouwde O25, O26 en O27 vielen in Duitse handen, werden afgebouwd en kwamen als U-D3, U-D4 en U-D5 in Duitse dienst. De U-D3 en U-D4 werden in mei 1945 door de Duitsers tot zinken gebracht; De U-D5 was tijdens de Duitse capitulatie in Bergen Noorwegen en kwam als O27 terug in Nederland.
{{||$:/_ship_template}}
* <<slider "Tewaterlating onderzeeboot O 24, 1940" Schepen058>>
De ontsnapte O24 had luitenant ter zee der tweede klasse Piet de Jong, de latere premier, aan boord.<br>
In 1955 in dienst genomen met naamsein A875 als 'drijvende oplaadbatterij', later 'instructievaartuig onderzeedienst'. In 1962 afgevoerd.
{{||$:/_ship_template}}
* <<slider "Duikboot O 5 1923" Schepen057>>
{{||$:/_ship_template}}
* <<slider "Duikboot O6 1923" Schepen057>>
{{||$:/_ship_template}}
* <<slider "Duikboot O7 Ca. 1928" Schepen097>>
{{||$:/_ship_template}}
* <<slider "Duikboot O8 ca. 1929" Schepen099>>
De Britse H6 voer op 19 januari 1916 op een zandbank in het Friesche zeegat bij Schiermonnikoog, waar het schip door Nederland werd geborgen. Omdat op dat moment het Verenigd Koninkrijk in oorlog was en Nederland tijdens de Eerste Wereldoorlog neutraal was, werd de H6 in beslag genomen en niet teruggegeven aan het Verenigd Koninkrijk. Op 4 mei 1917 kwamen de Nederlandse marine en de Britse marine overeen dat de H6 werd verkocht aan Nederland.
{{||$:/_ship_template}}
* <<slider "Duikboot O9 ca. 1928" Schepen090>>
* <<slider "Duikboot O9 1930" Schepen141>>
* <<slider "Duikboten O9 & O11 1930" Schepen109>>
* <<slider "Duikboten O9, O10 & O11 ca. 1935" Schepen002>>
!!! Oceanografisch onderzoeksvaartuig
Het marineschip ''Tydeman'' werd gebouwd met het doel zowel militair/hydrografisch als civiel onderzoek te dienen. In het overleg met de Commissie voor Zeeonderzoek en betrokken ministeries was afgesproken dat 30 % van de vaartijd beschikbaar zou zijn voor civiel wetenschappelijk onderzoek. Als geen sprake was van groot onderhoud of regelmatig optredende langdurige reparaties, varieerde het aantal zeedagen globaal tussen 130 en 190 per jaar, met andere woorden die civiele programma’s konden maximaal bijna 50 dagen duren. Dat was haalbaar in de noordoostelijke Atlantische oceaan, soms gespreid over een aantal jaren. De rest van de vaartijd had vooral een militair doel, zoals het uittesten van apparatuur in samenwerking met het Fysisch Laboratorium van de Rijksverdigingsorganisatie.
<<w>>
[img height=250 ['Octagon' motor|Images/Octagon_motor_Egger-Lohner_C2_400.jpg]]<br>
//'Octagon' motor.//
De OJR1 arriveerde (samen met de OJR2) op 10 december 1941, als deklading op een koopvaardijschip, in Soerabaja en werd 6 dagen later in dienst gesteld. Op 2 maart 1942 werd de Higginsboot door de eigen bemanning tot zinken gebracht.
In 1941 werden voor de Koninklijke Marine in Nederlands Oost-Indië 8 onderzeebootjagers besteld bij de Higgins Yard in New Orleans. De onderzeebootjagers zijn moeilijk in te delen omdat zij een heel specifieke functie hadden. Het waren geen echte patrouilleboten en ook geen torpedobootjagers. Omdat de boten beperkte afmetingen hadden en over zeer krachtige benzinemotoren beschikten, zijn ze nog het best te vergelijken met torpedomotorboten.
De zogenaamde Higginsboten vertoonden tal van technische gebreken en zijn nooit erg succesvol geweest. De eerste 6 Higginsboten werden in groepjes van twee aan boord van koopvaardijschepen afgeleverd in Soerabaja en werden bij het Marine Etablissement afgebouwd. De eerste 4 arriveerden eind 1941 en werden in dienst gesteld als OJR1 t/m OJR4. De derde groep arriveerde op 1 februari 1942 in Soerabaja, maar was niet op tijd klaar om in dienst gesteld te worden. Op 2 maart 1942 werden de boten, die OJR5 en OJR6 zouden gaan heten, door marinepersoneel vernield. De laatste 2 Higginsboten (H7 & H8) konden niet meer afgeleverd worden in Nederlands Oost-Indië en werden overgebracht naar Curaçao.
De OJR2 arriveerde tegelijk met de OJR1 in Soerabaja en werd op 16 december 1941 in dienst gesteld. De Higginsboot ging op 2 februari 1942 in het Westervaarwater bij Soerabaja verloren als gevolg van een benzine-explosie.
{{||$:/_ship_template}}
* <<slider "Torpedomotorboot OJR3 1941" Schepen403>>
De OJR3 arriveerde (samen met de OJR4) op 22 december 1941, als deklading op een koopvaardijschip, in Soerabaja en werd nog datzelfde jaar in dienst gesteld. Ook deze boot ging op 2 februari 1942 in het Westervaarwater verloren als gevolg van de benzine-explosie op de OJR2.
De OJR4 arriveerde (samen met de OJR3) op 22 december 1941, als deklading op een koopvaardijschip, in Soerabaja en werd nog datzelfde jaar in dienst gesteld. Op 2 maart 1942 werd het schip door de eigen bemanning tot zinken gebracht op het Marine Etablissement te Soerabaja.
<style type="text/css"> .urlImg {
width: 145px;
height:200px;
display:block;
}
.urlImg:hover {
background-image: url('Images/Ton_200.jpg');
}
</style>
<a href="#" class="urlImg">Ton Gerner</a>
Het schip werd direct na de aankomst in Nederland uit dienst genomen en in reserve geplaatst.
In 1976 werd het schip opnieuw in dienst genomen, ditmaal als hoofdkwartier-ondersteuningsschip.<br>
In 1982 werd het schip weer uit dienst genomen en ditmaal definitief.
Ondersteuningsschip ook wel hulpschip genoemd.<br>
Hier als breed begrip van bevoorrader, transportschip tot 'Joint logistic Support Ship' (JSS) en van opnemingsvaartuigen, oceanografisch onderzoeksvaartuigen en torpedowerkschepen tot opleidingsschepen.<br>Om 'Landing Platform Docks' (LPD's) niet te vergeten.
|Ondersteuningsvaartuigen |<|<|<|<|<|h
|#|Naam | Dienstperiode |Type |Registratie |Opmerkingen |h
|A847|Hollandia| 1945-1952 ||@@.h Paulina@@, IV, M4, (WWI: BX IX, @@.C ZRD 47@@), RS07, RS23, A847, Y8262 (@@.h L< 03@@) ?|1940-1944 Duits|
|A847|| 1939-1989 ||Y8124|1940-1944 Duits|
|A847|Thor (2002)|||M4 (1918-1940), RS23, A847 (1945-1962), Y8262 (1962-1992)|1940-1944 Duits|
|||||||
|||||||
!!!! Mijnenveger [[M4 (1918)]]
1917 rederij Wijsmuller: @@.h Pauline@@<br>
1918 KM + ombouw tot mijnenveger 'Mijnenveger 4', later M4.<br>
14-05-1940 in Zuiderkanaal tot zinken gebracht. Door duitsers gelicht, hersteld en in 1941 als @@.C ZRD 57@@, later als BS IX in gebruik genomen.<br>
In mei 1945 teruggevonden; bij KM als sleepboot RS23, later als A847.<br>
Het schip werd begin zestiger jaren verbouwd tot verwarmingsboot en werd in 1965 verbouwd tot tankwasboot.<br>In 1992 verkocht.
---
De 'Hollandia' met 4 A190 vaart op eigen kracht naar Nieuw-Guinea.in 1952
---
Van Amstel schrijft in zijn boek echter over de Y8262, dat dit de voormalige A847 was (ex RS23, RS07, KM03, BS IX, ZRDF47, M4, IV, Paulina) ?
---
Sleepboot PAULINE - Mijnenveger 4 - M 4 - (ZRD 47, BS 9) - RS 7 - A 847 - Y 8262 (Thor) - Sleepboot, mijnenveger, later: verwarmingsvaartuig, tankwasboot en scheepsvlakspoelboot.
De nummers komen overeen met de door jou genoemde gegevens; alleen KM 3 ontbreekt.
De eerder door mij genoemde gegevens kwamen van een oude nummeringslijst; daar klopt kennelijk iets niet. Aangezien ik van deze lijst geen bronvermelding heb, kan ik dat moeilijk nakijken.
---
<<slider "A828" "A828_Walcheren_vraag.jpg">>
!!! Sleepboot Hercules A828
"""
Technisch gegevens
werf: Nobiskrug, Rendsburg, Duitsland
Bouwnummer : 513.
Bouwjaar : 1942
Indienststelling: 10-01-1951
Uitdienststelling: 01-12-1967
Afmetingen : Lxbxhxdg.: 35,37 x 8,56 x 4,40 x 3,30 meter,
Verplaatsing : 279,9 grt.
Voortstuwing : 800 pk / 1 x 12 cilinder Brons nr.15821 type 12GV-H uit 1969
Vermogen 1500 apk. =1103 kW. bij 375 r.p.m.
Schroeven : 1
Namen:
1942 ATLAS Luftwaffe, Duitsland.
1944 ATLAS Bugsier, Hamburg, Duitsland.
1945 ATLAS Royal Navy, Londen, Engeland.
29-03-1950 WALCHEREN XII Key & Zn., Rotterdam.
10-01-1951 A.828 HERCULES Koninklijke Marine, Den Helder.
01-12-1967 A.828 HERCULES Dienst der Domeinen.
27-12-1968 TEMI IV T.Dijkhuizen, Vlissingen.
28-03-1982 Omgetrokken.
1988 gesloopt.
"""
|Ondersteuningsvaartuigen |<|<|<|<|<|h
|#|Naam ^^1^^| Dienstperiode |Type |Registratie |Opmerkingen |h
||^^1^^ voor sleepboten meestal de oudste naam (vaak nog niet marine)|<|<|<|<|
|||||||
|||||||
|||||||
|||||||
(Onze vloot & Maritiem digitaal bekeken t/m A999)
|Jachthond, in dienst gesteld|<|h
|als MGB 114|29-12-42|
|als MTB 433|04-04-44|
|tijdelijk opgelegd in Vlissingen|06-11-45|
|Verbouwing tot torpedovolgboot heeft plaats gevonden op de Rijkswerf te Den Helder|<|
|In dienst als ( torpedovolgboot)|20-04-48|
|Naamsein|MGB114, MTB433, 1945- RJ2, 1947-(?) A964 = Jachthond, 1953- P 884|
|Afgevoerd van de sterkte|1955|
|Zie ook https://nl.wikipedia.org/wiki/Motortorpedobootdienst|<|
Communicatievaartuig Y 8239
Motorsloep Y-8231 (1952-1965) (ex-RC 38, ex-MOD 16, ex-WDP II)
Motortransportvaartuig Y 8752, (1915-1966). Ex. MTD II, RC 2, A 977. !917 aangekocht
De RE 61, de latere RF 6, Y 888, Y 8403 (bijnaam Lena)
De latere Y 8404 ex Y 888 ex RF 06 was ook een dekschuit
WDP I > RY1 > A911> Y865> Y8240
WDP II > MOD 16> RC38>Y814>Y8231
WDP III M 91, RY 3, A 913, Y 8241, WM2-3901
RW 3 = Drijvend dok III - Y 8677 - hulpgetal 1027-2
hulpgetal: 1486-05, Y 8402, Y 887, RF 5, RW 3
De RF vaartuigen waren dekschuiten en deels werkvaartuigen zonder voortstuwing, die later in de serie Y 8401 zijn opgenomen.<br>
Ook de waterboten kwamen in de serie Y 84.., doch achteraan als b.v. Y 8480 t/m/ Y 8483.
Het stoomafgiftevaartuig Y 8121 uit 1933 was eerst de Y 829 ex RK 08 en ex RW 11.
Het stoomafgiftevaartuig Y 8121 uit 1933 was eerst de Y 829 ex RK 08 en ex RW 11.
@@.h Foutje in filtering: als er meerdere mogelijkheden zijn, wordt alleen de 1^^e^^ gepakt!<br>
B.v. [[Argus (1939)]]: D1, MOD4, RD10, A950, Y8651, Y8124, A847<br>
Alleen A950 wordt gevonden!@@
<$tiddler tiddler=<<currentTab>>>
{{||$:/_pennantnummer_template}}
</$tiddler>
<!--
1) Kloon $:/_pennantnummer_details_template
2) Hernoem tiddler tot 'Schepen' (b.v. Fregatten)
3) Vervang in veld 'filter' de 'C' (voor kruisers) door het bijbehorende voorvoegsel toe (voor fregatten 'F')
<<penlinks filter char>>
vereist in TW5.1.17 $:/core/modules/filters/regexps.js
-->
!! Ondersteuningsvaartuigen volgens pennantnummer 'A...'
<<<
''N.B.:''
* @@.h In 1953 werd t.b.v. België de reeks ingekort van A800 - A999 tot A800 - A949 en volgde hernoeming vanaf A950.@@
* De vaartuigen van het Loodswezen (evenals de betonningsvaartuigen en lichtschepen) hadden in de periode dat deze diensten nog deel uitmaakten van de marine niet alleen bewapening, maar ook pennantnummers. Deze vaartuigen zijn in onderstaande tabel @@.c gemarkeerd@@.
* Dienstperiode en type worden @@.C gemarkeerd@@ aangegeven voor schepen in hun 'laatste fase' als ondersteuningsvaartuig.
<<<
|Ondersteuningsvaartuigen 'A'|<|<|<|<|<|h
|#|Naam | Dienstperiode |Type |Registratie |Opmerkingen |h
|A801|@@.c Aldebaran (1948)@@| 1948-1974 |loodsvaartuig|HB10, A801||
|A801|[[Pelikaan (1990)]]| {{Pelikaan (1990)!!per}} |{{Pelikaan (1990)!!soort}}|{{Pelikaan (1990)!!reg}}||
|A802|@@.c Algol (1942)@@| 1950-1975 |loodsvaartuig|HB12, A802||
|A802|@@.c Markab (1978)@@ | 1978-? |loodsvaartuig|A802||
|A802|[[Snellius (2003)]]| {{Snellius (2003)!!per}} |{{Snellius (2003)!!soort}}|{{Snellius (2003)!!reg}}||
|A803|@@.c Altair (1909)@@| 1946-1950 |loodsvaartuig|Stoomloodsvaartuig nr. 8, HB2, A803||
|A803|@@.c Zeemeeuw (1970)@@| 1970-? |loodsvaartuig|A803||
|A803|[[Luymes (2004)]]| {{Luymes (2004)!!per}} |{{Luymes (2004)!!soort}}|{{Luymes (2004)!!reg}}||
|A804|@@.c Antares (1951)@@| 1951-1975 |loodsvaartuig|HB18, A804||
|A804|[[Pelikaan (2006)]]| {{Pelikaan (2006)!!per}} |{{Pelikaan (2006)!!soort}}|{{Pelikaan (2006)!!reg}}||
|A805|@@.c Arcturus (1944)@@| 1948-1966 |loodsvaartuig|HB9, A805||
|A805|@@.c Altair (1974)@@| 1974-? |loodsvaartuig|A805||
|A806|@@.c Bellatrix (1951)@@| 1951-1978 |loodsvaartuig|HB17, A806||
|A807|@@.c Betelgeuze (1950)@@| 1951-197? |loodsvaartuig|HB21, A807||
|A808|@@.c Canopus (1916)@@| 1946-1953 |loodsvaartuig|Stoomloodsvaartuig nr.13, HB4, A808||
|A808|@@.c Fomalhaut (1974)@@| 1974-? |loodsvaartuig|A808||
|A809|@@.c Capella (1919)@@| 1946-1952 |loodsvaartuig|Stoomloodsvaartuig nr.15, HB5, A809||
|A810|@@.c Castor (1950)@@| 1950-1983 |loodsvaartuig|HB14, A810||
|A810|Sija| 1939-1968 |sleepboot |Sija, 1945- Marva, 1947- RS10, 1950- A810, 1953- Y8032||
|A811|@@.c Deneb (1942)@@| 1949-1974 |loodsvaartuig|HB13, A811||
|A812|@@.c Frans Naerebout (192?)@@| 192?-~1968 |loodsvaartuig|Stoomloodsvaartuig nr.3, HB24, A812||
|A813|@@.c Lichtschip 8 (1923)@@| 1923-1971 |lichtschip|HB20, A813||
|A814|@@.c Honte@@| ? |betonningsvaartuig|No.12, HB25, A814||
|A815|@@.c Markab (1943)@@| 1948-1967 |loodsvaartuig|HB8, A815||
|A815|@@.c Vlissingen@@| ? |betonningsvaartuig|A815||
|A816|@@.c Polaris (1908)@@| 1946-1952 |loodsvaartuig|Stoomloodsvaartuig nr.6, HB1, A816||
|A816|@@.c Zeezwaluw (1971)@@| 1971-? |loodsvaartuig|A816||
|A817|@@.c Pollux (1950)@@| 1950-1980 |loodsvaartuig|HB15, A817 => Plancius||
|A818|@@.c Procyon (1950)@@| 1951-1976 |loodsvaartuig|HB22, A818||
|A819|@@.c Regulus (1910)@@| 1946-1951 |loodsvaartuig|Stoomloodsvaartuig nr.9, HB3, A819||
|A819|@@.c Wega (1968)@@| 1968-? |loodsvaartuig|A819||
|A820|@@.c Rigel (1942)@@| 1948-1979 |loodsvaartuig|HB11, A820||
|A821|@@.c Sirius (1950)@@| 1950-197? |loodsvaartuig|HB16, A821||
|A822|@@.c Spica (1921)@@| 1946-1951 |loodsvaartuig|Stoomloodsvaartuig nr.21, HB7, A822||
|A822|@@.c Stern (1976)@@| 1976-? |loodsvaartuig|A822||
|A823|@@.c Lichtschip 9@@| 1933-1979 |lichtschip|Lichtschip 9, HB23, A823||
|A823|@@.c Pluvier@@| ? |loodsvaartuig|A823||
|A824|@@.c Lichtschip 7@@| 1910-1954 |lichtschip|Lichtschip 7, HB19, A824||
|A824|@@.c Lichtschip 12@@| ? |lichtschip|A824||
|A825|@@.c Wega (1921)@@| 1946-1951 |loodsvaartuig|Stoomloodsvaartuig nr.20, HB6, A825||
|A825|@@.c Zeeduiker@@| ? |loodsvaartuig|Neeltje Jacoba, A825||
|A826|@@.c Zeekoet@@ | 1963-19?? |zee-afhaalvaartuig|No.3, HB26, A826||
|A827|@@.c Zeezwaluw (1944)@@| 1946-1968 |zee-afhaalvaartuig|Taugerfahrzeug, HB27, A827||
|A827|@@.c Aalscholver (1969)@@| 1969-? |loodsvaartuig|A827||
|A828|[[Triton (1948)]]| 1948-1953 |bergingsvaartuig|Matsanoura Maru, HF1, A828||
|A828|[[Hercules (1951)]]| {{Hercules (1951)!!per}} |{{Hercules (1951)!!soort}}|{{Hercules (1951)!!reg}}||
|A828|@@.c Jan van Gent (1969)@@| 1969-? |loodsvaartuig|A828||
|A829|[[Mercuur (1936)]]| 1936-1973 |torpedowerkschip|A829||
|A829|@@.c Menkar (1977)@@| 1977-? |loodsvaartuig|A829||
|A830|[[Pelikaan (1948)]]| {{Pelikaan (1948)!!per}} |{{Pelikaan (1948)!!soort}}|{{Pelikaan (1948)!!reg}}||
|A830|@@.c Mirfak (1977)@@| 1977-? |loodsvaartuig|A830||
|A831|@@.c Krammer@@| ? |betonningsvaartuig|HD2, A831||
|A832|[[Woendi (1946)]]| {{Woendi (1946)!!per}} |{{Woendi (1946)!!soort}}|{{Woendi (1946)!!reg}}||
|A832|[[Zuiderkruis (1975)]]| {{Zuiderkruis (1975)!!per}} |{{Zuiderkruis (1975)!!soort}}|{{Zuiderkruis (1975)!!reg}}||
|A833|@@.c Lichtschip 10@@| 1952-1992 |lichtschip|Lichtschip 10, A833||
|A833|[[Karel Doorman (2015)]]| {{Karel Doorman (2015)!!per}} |{{Karel Doorman (2015)!!soort}}|{{Karel Doorman (2015)!!reg}}||
|A834|@@.c Lichtschip 1@@| ? |lichtschip|A834||
|A834|Sorido (ex Con)| 1949-1959 |sleepboot|DVS, T201, Con, A834, Y8002||
|A835|Lex| 1948-1953 |sleepboot|T202, HS3, A835, Y8003||
|A835|[[Poolster (1964)]]| {{Poolster (1964)!!per}} |{{Poolster (1964)!!soort}}|{{Poolster (1964)!!reg}}||
|A836|[[Amsterdam (1995)]]| {{Amsterdam (1995)!!per}} |{{Amsterdam (1995)!!soort}}|{{Amsterdam (1995)!!reg}}||
|A837|Orkaan| 1949-1961 |sleepboot|RS05, A837||
|A838|Emma (2)| 1948-1953 |sleepboot|Emma (2), Sleepdienst 7, Zeemeeuw, RS24, A838||
|A839|@@.c Grevelingen@@| ? |betonningsvaartuig|HD1, A839||
|A840|?| 1929-1949 |sleepboot|Onderzeedienst I, RS32, A840||
|A841|Dorus Rijkers| 1950-1968 |sleepboot|Marinesleepboot nr. 1, RS 01, A841, Y8004||
|A842|?| 1937-1983 |sleepboot|Sleepdienst 1, Marine sleepdienst 3, Sleepdienst 2, Marinesleepdienst 2, RS2, A842, Y8005||
|A843|?| 1937-1977 |sleepboot/verwarmingsboot|Sleepdienst II, Marine sleepdienst 3, RS03, A 843, Y8006||
|A844|?| 1936-1976 |sleepboot/verwarmingsboot|Sleepdienst III, Marinesleepdienst 4, RS04, RK23, A844, Y8590, Y8122||
|A845|?| 1948-1960 |sleepboot/verwarmingsboot|Sleepdienst IV, Marinesleepdienst 5, RS05, A845, Y8305||
|A846|?| 1939-1966 |sleepboot|MVP165, Sleepdienst 6, RS06, A846, Y8008||
|A847|Pauline| 1939-1989 |sleepboot|Pauline, Mijnenveger 4, M4, RS7, A847, Y8262||
|A847|[[Argus (1939)]]| {{Argus (1939)!!per}} |{{Argus (1939)!!soort}}|{{Argus (1939)!!reg}}||
|A848|Antonie II| 1946-1968 |sleepboot|Antonie II, Karla, Hoek, RS08, A848, Y8027||
|A848|[[Triton (1964)]]| {{Triton (1964)!!per}} |{{Triton (1964)!!soort}}|{{Triton (1964)!!reg}}||
|A849|Quatrieme| 1940-1968 |sleepboot|Quatrieme, RS09, A849, Y8031||
|A849|[[Nautilus (1965)]]| {{Nautilus (1965)!!per}} |{{Nautilus (1965)!!soort}}|{{Nautilus (1965)!!reg}}||
|A850|[[Hydra (1965)]]| {{Hydra (1965)!!per}} |{{Hydra (1965)!!soort}}|{{Hydra (1965)!!reg}}||
|A850|[[Soemba (1989)]]| {{Soemba (1989)!!per}} |{{Soemba (1989)!!soort}}|{{Soemba (1989)!!reg}}||
|A851|?| 1945-1968 |sleepboot|MVD7, KM7, RS11, A851, Y8009||
|A851|[[Cerberus (1992)]]| {{Cerberus (1992)!!per}} |{{Cerberus (1992)!!soort}}|{{Cerberus (1992)!!reg}}||
|A852|Agatha| 1946-1966 |sleepboot|Agatha, Elly, KM8, RS12, A852, Y8010||
|A852|[[Argus (1992)]]| {{Argus (1992)!!per}} |{{Argus (1992)!!soort}}|{{Argus (1992)!!reg}}||
|A853|[[Zuiderkruis (1944)]]| {{Zuiderkruis (1944)!!per}} |troepen transportschip, logementsschip|A853|ex-Cranston Victory|
|A853|[[Nautilus (1992)]]| {{Nautilus (1992)!!per}} |{{Nautilus (1992)!!soort}}|{{Nautilus (1992)!!reg}}||
||||||
|A854|?| 1940-1966 |sleepboot|KM24, RS14, A854, Y8012||
|A854|[[Onversaagd (1955)]]| @@.C 1973-1976@@ |@@.C Noordzee-opnemingsvaartuig@@|{{Onversaagd (1955)!!reg}}||
|A854|[[Hydra (1992)]]| {{Hydra (1992)!!per}} |{{Hydra (1992)!!soort}}|{{Hydra (1992)!!reg}}||
||||||
|A855|?| 1945-1963 |sleepboot(je)|KM23, RS15, A855, Y8013||
|A855|[[Onbevreesd (1955)]]| @@.C 1976-1982@@ |@@.C hoofdkwartier-ondersteuningsschip@@|{{Onbevreesd (1955)!!reg}}||
|||||||
|A856|?| 1915-1966 |sleepboot|KM25, RS16, A856, Y8011||
|A856|[[Onverschrokken (1954)]]| @@.C 1973-1987@@ |@@.C torpedowerkschip@@ [[Mercuur (1973)]]|{{Onverschrokken (1954)!!reg}}||
||||||
|A857|Jade| 1945-1988 |sleepboot|Jade, Onderzeedienst 4, RS17, A857, Y8014||
|A857|Mok1 ([[Hendrik Karssen (1939)]])| {{Hendrik Karssen (1939)!!per}} |{{Hendrik Karssen (1939)!!soort}}|{{Hendrik Karssen (1939)!!reg}}||
|A857|[[Onvermoeid (1954)]]| @@.C 1965-1971@@ |@@.C hoofdkwartier-ondersteuningsschip@@|{{Onvermoeid (1954)!!reg}}||
|A858|?| 1938-1968 |sleepboot|Onderzeedienst 5, RS18, A858, Y8015||
|A858|[[Onvervaard (1955)]]| @@.C 1965-1971@@ |@@.C hoofdkwartier-ondersteuningsschip@@|{{Onvervaard (1955)!!reg}}||
|A859|?| ?-1954 |sleepboot|MVP426, Onderzeedienst 6, RS19, A859, Y8029||
|A859|[[Onverdroten (1955)]]| @@.C 1965-1982@@ |@@.C hoofdkwartier-ondersteuningsschip@@|{{Onverdroten (1955)!!reg}}||
|A859|?| ? |jol|RK17, A859, Y8317|= WR4-3401|
|A860|?| 1949-1951 |sleepboot|Onderzeedienst II, RS20, A860|1949- demagnetiseringsdienst, 1950- onderzeedienst|
|A861|?| 1918-1949 |sleepboot|M1, I, A861||
|A862|?| 1948- - 1953- |sleepboot|MVD8, RS22, A862|toegevoegd aan het wachtschip Den Helder|
|||||||
|A864|?| 1953 -1958 |sleepboot|Onderzeedienst 12, RS31, A864, Y8019||
|A865|?| 1947 |sleepboot|RS25, A865|Deze nummers nooit gevoerd. Voor effectieve invoering uit dienst gesteld|
|A866|Volendam| 1946-1966 |sleepboot|Volendam, XWT1389, KM26, RS26, A866, Y8021||
|A867|Figuas| 1942 -1979 |sleepboot|Figuas, Gejo, MCTV5, KM4, RS27, A867, Y8022||
|A868|Eems| 1939 -1990 |sleepboot|Eems, Granville, MCTV3, KM15, RS28, A868, Y8028||
|||||||
|A870|Alta| 1946-1966 |sleepboot|Alta, MCTV2, RS30, A870, Y8024||
|A870|[[Batjan (1946)]]| @@.C 1957-1958@@ |@@.C logementschip@@|{{Batjan (1946)!!reg}}||
|A870|Wamandai| 1962-1985 |sleepboot|A870, Y8035||
|A871|[[Soemenep (1941)]]| 1941-1950 |hulpmijnenlegger/sleepboot|Soemenep, RS101, A871||
|A871|[[Boeroe (1946)]]| @@.C 1957-1958@@ |@@.C logementschip@@|{{Boeroe (1946)!!reg}}||
|A871|Wambrau| 1957-1987 |sleepboot|A871, Y8036||
|A871|Noordzee| 2016- |sleepboot|A871||
|A872|[[Ceram (1946)]]| @@.C 1957-1958@@ |@@.C logementschip@@|{{Ceram (1946)!!reg}}||
|A872|Westgat| 1968-1997 |sleepboot|A872||
|A872|Waddenzee| 2016- |sleepboot|A872||
|A873|[[Westerschelde (1946)]]| @@.C 1957-?@@ |@@.C instructievaartuig@@|{{Westerschelde (1946)!!reg}}||
|A873|Wielingen| 1968-1992 |sleepboot|A873||
|A873|Zuiderzee| 2016- |sleepboot|A873||
|A874|[[Ternate (1946)]]| @@.C 1956-?@@ |@@.C instructievaartuig@@|{{Ternate (1946)!!reg}}||
|A874|Linge| 1987-2016 |kustsleepboot|A874||
|A874|?| ? |?|RS104, A874||
|||||||
|A875|[[O24 (1940)]]| @@.C 1955-1962@@ |@@.C drijvende oplaadbatterij, instructievaartuig onderzeedienst@@|A875||
|A875|Regge| 1987-2016 |kustsleepboot|A875||
|A875|?| ? |?|RS105, A875||
|||||||
|A876|[[Van Kinsbergen (1939)]]| @@.C 1955-1959@@ |@@.C logementschip@@|{{Van Kinsbergen (1939)!!reg}}||
|A876|Hunze| 1987-2016 |kustsleepboot|A876||
|||||||
|A877|[[Flores (1926)]]| @@.C 1955-1968@@ |@@.C logementschip@@|{{Flores (1926)!!reg}}|@@.C 1960-1965@@ als [[Van Speijk (1960)]]|
|A877|Rotte| 1987-2016 |kustsleepboot|A877||
|A877|Emma 1| ?-1953 |sleepboot|Emma 1, RS202, A877||
|||||||
|A878|[[Tromp (1938)]]| @@.C 1955-1968@@ |@@.C logementschip@@|{{Tromp (1938)!!reg}}||
|A878|Gouwe| 1997- |kustsleepboot|A878||
|A878|?| ? |?|RS203, A878||
|A879|[[Jacob van Heemskerck (1940)]]| @@.C 1955-1968@@ |@@.C logementschip@@|{{Jacob van Heemskerck (1940)!!reg}}||
|A879|?| ? |?|RS204, A879||
|A880|[[Willem van der Zaan (1939)]]| @@.C 1961-1970@@ |@@.C werkschip/logementschip@@|{{Willem van der Zaan (1939)!!reg}}||
|A880|[[Bulgia (1954)]]| @@.C 1986-1996@@ |@@.C instructievaartuig@@|{{Bulgia (1954)!!reg}}||
|A881|Neptunus = ex [[Jacob van Heemskerck (1908)]]| @@.C 1948-1974@@ |@@.C logementschip@@|{{Jacob van Heemskerck (1908)!!reg}}||
|A882|[[Schorpioen (1868)]]| @@.C 1908-1971@@ / 1989-heden |@@.C logementschip@@/museumschip|{{Schorpioen (1868)!!reg}}||
|A882|[[Woerden (1957)]]| @@.C 1962-1990@@ |@@.C duikvaartuig/communicatievaartuig@@|{{Woerden (1957)!!reg}}||
|||||||
|A884|[[Buffel (1868)]]| @@.C 1896-1972@@ / 1979-heden |@@.C logementschip@@/museumschip|{{Buffel (1868)!!reg}}||
|||||||
|A886|[[Cornelis Drebbel (1915)]] (1)| 1915-1972 |depotschip/logementschip|HW2, A886||
|A886|Cornelis Drebbel (2)| 1971-1997 |botel|A886||
|A887|Haarlemmermeer| 1945-1967 |logementschip|HW6, A887||
|A887|Thetis| 1985- |botel|A887||
|A888|[[Hertog Hendrik (1904)]]| @@.C 1947-1968@@ |@@.C wachtschip/logementschip@@|{{Hertog Hendrik (1904)!!reg}}||
|A890|[[Medusa (1911)]]| @@.C 1940-1964@@ |@@.C depot- en wachtschip/logementschip/mijnenveegwerkschip@@|{{Medusa (1911)!!reg}}||
|A891|[[Soemba (1926)]]| @@.C 1951-1985@@ |@@.C vliegtuigdirectieschip/logementschip@@|{{Soemba (1926)!!reg}}||
|A892|[[Zeearend (1940)]]| {{Zeearend (1940)!!per}} |opleidingsschip onderzeebootbestrijding|{{Zeearend (1940)!!reg}}||
|A893|[[Paets van Troostwijck (1949)]]| {{Paets van Troostwijck (1949)!!per}} |{{Paets van Troostwijck (1949)!!soort}}|{{Paets van Troostwijck (1949)!!reg}}||
|A894|?| ?-1964 |hulpvaartuig|HW19, A894, Y8067||
|A895|[[Cerberus (1952)]]| {{Cerberus (1952)!!per}} |{{Cerberus (1952)!!soort}}/duikwerkschip|{{Cerberus (1952)!!reg}}||
|||||||
|A897|[[Beveland (1943)]]| @@.C 1955-1956@@ |@@.C duikvaartuig/logementschip@@|{{Beveland (1943)!!reg}}||
|A898|[[Douwe Aukes (1922)]]| 1945-1962 |depotschip/mijnenvegerwerkschip/logementschip|{{Douwe Aukes (1922)!!reg}}||
|A899|[[Marken (1944)]]| @@.C 1955-1957@@ |@@.C duikvaartuig@@|{{Marken (1944)!!reg}}||
|||||||
|A900|[[Mercuur (1987)]]| {{Mercuur (1987)!!per}} |{{Mercuur (1987)!!soort}}|{{Mercuur (1987)!!reg}}||
|A901|[[Hydrograaf (1910)]]| {{Hydrograaf (1910)!!per}} |{{Hydrograaf (1910)!!soort}}|{{Hydrograaf (1910)!!reg}}||
|||||||
|A902|[[Luymes (1952)]]| {{Luymes (1952)!!per}} |{{Luymes (1952)!!soort}}|{{Luymes (1952)!!reg}}||
|A902|[[Van Kinsbergen (1999)]]| {{Van Kinsbergen (1999)!!per}} |{{Van Kinsbergen (1999)!!soort}}|{{Van Kinsbergen (1999)!!reg}}||
|||||||
|A903|[[Zeefakkel (1951)]]| {{Zeefakkel (1951)!!per}} |{{Zeefakkel (1951)!!soort}}|{{Zeefakkel (1951)!!reg}}||
|||||||
|A904|?| 1946-1956 |hulpopnemingsvaartuig|HMS161/ML161, HDML1407, HY4, MV41, P819, 1952- A904||
|A904|[[Zuiderdiep (1947)]]| @@.C 1957-1962@@ |@@.C duikwerkschip@@|{{Zuiderdiep (1947)!!reg}}||
|A904|[[Buyskes (1973)]]| {{Buyskes (1973)!!per}} |{{Buyskes (1973)!!soort}}|{{Buyskes (1973)!!reg}}||
|||||||
|A905|?| 1946-1952+ |hulpopnemingsvaartuig|HMS160/ML162, HDML1409, HY5, KV44, P820, 1952- A905||
|A905|[[Borndiep (1946)]]| 1957-1962 |duikvaartuig|{{Borndiep (1946)!!reg}}||
|A905|[[Blommendal (1973)]]| {{Blommendal (1973)!!per}} |{{Blommendal (1973)!!soort}}|{{Blommendal (1973)!!reg}}||
|||||||
|A906|[[Jan van Brakel (1936)]]| @@.C 1957@@ |@@.C doelschip@@|{{Jan van Brakel (1936)!!reg}}||
|A906|[[Marsdiep (1947)]]| @@.C 1957-1962@@ |@@.C duikvaartuig@@|{{Marsdiep (1947)!!reg}}||
|A906|[[Tydeman (1976)]]| {{Tydeman (1976)!!per}} |{{Tydeman (1976)!!soort}}|{{Tydeman (1976)!!reg}}||
|||||||
|A907|[[Snellius (1952)]]| {{Snellius (1952)!!per}} |{{Snellius (1952)!!soort}}|{{Snellius (1952)!!reg}}||
|||||||
|A908|@@.c Breeveertien@@| ? |betonningsvaartuig|A908||
|A909|Dreg I| 1950-1970 |dregboot|HY9, 1950- A909||
|A909|@@.c Spica (1973)@@| 1973-? |loodsvaartuig|A909||
|A910|Dreg II| 1950-1970 |dregboot|HY10, 1950- A910||
|A911|?| 1945-1967 |opnemingsvaartuig|WDP1, RY1, Y863, A911, Y8240|v.m. Verkehrsboot Kriegsmarine; krijgsbuit.<br>tijdens watersnood in Zeeland (1953) actief|
|A911|@@.c Terneuzen@@| ? |betonningsvaartuig|A950, A911||
|A912|?| 1945-1953 |hulpopnemingsvaartuig|MV42, ML138, RY2, A912, Y864||
|A912|@@.c Zierikzee@@| ? |betonningsvaartuig|Coldewey, A982, A912||
|A912|Bambina||crashboat MLD|Bambina, Y8298, A912||
|A913|?| ? |?|WDP3, M91, RY3, A913, Y8241||
|A913|@@.c Stormvogel@@| ? |loodsvaartuig|A983, A913||
|A914|?| ? |?|RY4, A914||
|A914|@@.c Zilvermeeuw (1954)@@| 1954-? |loodsvaartuig|A984, A914||
|A915|?| ? |?|RY5, M82, A915, Y8242||
|A915|@@.c Delfzijl@@| ? |betonningsvaartuig|Logger 3203, Borndiep, A985, A915||
|A915|@@.c (schouw Zoutkamp)@@| ? |betonningsvaartuig|A915||
|A916|?| ? |?|RY6, M98, A916, Y8243||
|A916|@@.c Rotterdam@@| ? |betonningsvaartuig|No.4, Zeemeeuw, A986, A916||
|A916|@@.c Delfshaven (1959)@@| 1959-? |betonningsvaartuig|A916||
|A917|?| ? |?|RY7, M99, A917, Y8254||
|A917|@@.c Walvis (1965)@@| 1965-? |loodsvaartuig|No.8, A987, A917||
|A918|?| ? |?|RY8, A918, Y8255||
|A918|@@.c Bruinvis (1965)@@| 1965-? |loodsvaartuig|No.9, A988, A918||
|A919|Dreg III| 1950-1970 |dregboot|HY11, 1950- A919|(ged)Bestemd voor Ned. Nw Guinea|
|A919|@@.c Kluut@@| ? |loodsvaartuig|A919||
|A920|Dreg IV| 1950-1986 |dregboot/communicatievaartuig|A920, 1970- Y8620||
|A920|@@.c Wulp (1978)@@| 1978-? |loodsvaartuig|A920||
|A921|?| 1919-1960 |bok|RB1, A921, Y8685||
|A921|[[Deurloo (1946)]]| @@.C 1956-1962@@ |@@.C duikvaartuig@@|{{Deurloo (1946)!!reg}}||
|A921|@@.c Zeearend@@| ? |loodsvaartuig|No.1, A989, A921||
|A921|@@.c Albatros (1984)@@| 1984-? |loodsvaartuig|A921||
|A922|?| 1930-1976 |drijvende kraan|RB2, A922, Y8681||
|A922|[[Vliestroom (1947)]]| @@.C 1956-1962@@ |@@.C duikvaartuig@@|{{Vliestroom (1947)!!reg}}||
|A922|@@.c Zeemeeuw@@| ? |loodsvaartuig|No.3, Texel, A990, A922||
|A922|@@.c Alk@@| ? |loodsvaartuig|A922||
|A923|?| 1947-1975 |drijvende stoombok|RB3, A923, Y8684||
|A923|[[Van Bochove (1962)]]| {{Van Bochove (1962)!!per}} |{{Van Bochove (1962)!!soort}}|{{Van Bochove (1962)!!reg}}||
|A924|@@.c Kabeljauw@@| ? |loodsvaartuig|A992, A924||
|A925|[[Abraham Crijnssen (1937)]]| @@.C 1952-1961@@ |@@.C netpoortschip@@|{{Abraham Crijnssen (1937)!!reg}}||
|A926|[[Pieter Florisz (1937)]]| @@.C 1952-1961@@ |@@.C netpoortschip@@|{{Pieter Florisz (1937)!!reg}}||
|A927|[[Jan van Gelder (1937)]]| @@.C 1952-1961@@ |@@.C netpoortschip@@|{{Jan van Gelder (1937)!!reg}}||
|A928|[[Abraham van der Hulst (1946)]]| @@.C 1952-1961@@ |@@.C netpoortschip@@|{{Abraham van der Hulst (1946)!!reg}}||
|A929|@@.c Makreel@@| ? |loodsvaartuig|A993, A929||
|A930|@@.c Rog@@| ? |loodsvaartuig|A994, A930||
|A931|@@.c Geep@@| ? |loodsvaartuig|A995, A931||
|A932|@@.c Spiering@@| ? |loodsvaartuig|A996, A932||
|A933|@@.c Forel@@| ? |loodsvaartuig|Haai, A933||
|A933|@@.c Haai@@| ? |loodsvaartuig|No.1, A997, A933||
|A933|@@.c Poon@@| ? |loodsvaartuig|A933||
|A934|@@.c Jan van Gent@@| ? |loodsvaartuig|No.4, A998, A934||
|A934|?| ? |munitielichter|munitielichter IV, Y8506, A934, RA4||
|A935|@@.c Albatros@@| ? |loodsvaartuig|No.6, A999, A935||
|A935|@@.c Eems@@| ? |betonningsvaartuig|A935||
|||||||
|A937|?| 1930-1966 |munitieprauw|RA07, A937, Y8509||
|A938|?| 1949-1958 |werkvaartuig mijnendienst|RA08, A938, Y8510||
|A939|@@.c Slenk@@| ? |betonningsvaartuig|A939||
|A939|?| 1950-? |torpedotransportschip|A939, Y8511||
|A940|@@.c Lauwers@@| ? |betonningsvaartuig|A940||
|A940|?| 1951-1983+ |torpedotransportschip|A940, Y8512|Augurk|
|A941|@@.c Texelstroom@@| ? |betonningsvaartuig|RD101, No.1, A941||
|A942|@@.c Lauwerzee@@| ? |betonningsvaartuig|RD102, No.1, A942||
|A943|@@.c Waddenzee@@| 1917-1960 |betonningsvaartuig/torpedowerkschip|RD103, No.2, A943|ex-LW; tijdelijk torpedowerkschip|
|A944|@@.c Vliestroom@@| ? |betonningsvaartuig|RD104, No.3, A944||
|A945|@@.c IJsselmeer@@| ? |betonningsvaartuig|RD105, No.5, A945||
|A946|@@.c Gouwzee@@| ? |betonningsvaartuig|RD106, No.5a, A946||
|A946|@@.c Grutto@@| ? |loodsvaartuig|A946||
|A947|@@.c Haringvliet@@| ? |betonningsvaartuig|RD107, No.7, Zuiderzee, A947||
|A947|@@.c Everingen@@| ? |betonningsvaartuig|No.11, A947||
|A948|@@.c Vlissingen@@| ? |betonningsvaartuig|RD108, No.6, A948||
|A948|@@.c Terschelling@@| ? |betonningsvaartuig|A948||
|A949|@@.c Zaandam@@| ? |betonningsvaartuig|A949||
|||||||
|||||||
|In 1953 werden pennantnummers vanaf A950 hernoemd naar Y pennantnummers of A pennantnummers beneden A950|<|<|<|<|<|h
|A950|@@.c Terneuzen@@| ? |betonningsvaartuig|A950, A911||
|A950|[[Argus (1939)]]| {{Argus (1939)!!per}} |{{Argus (1939)!!soort}}|{{Argus (1939)!!reg}}||
|A951|Ebbe| ? |duiksloep|RD1, A951, Y8652||
|A952|?| ? |duiksloep|RD2, A952, Y8653||
|A953|Anna Helena| ? |duiksloep|RD3, A953, Y8654||
|A954|?| ? |duiksloep|RD4, A954, Y8655||
|A955|?| 1938-1957 |duiksloep|WVD12, MOD6, RD5, A955, Y8656||
|A956|?| ? |duiksloep|RD6, A956||
|A957|?| ? |duiksloep|RD7, A957||
|A958|?| ? |duiksloep|RD8, A958||
|A959|?| 1945-1957 |duiksloep|MODIV, RD9, A959, Y8658||
|A960|?| ? |?|A960, Y8659||
|||||||
|A963|?| 1938-1953+ |torpedovolgboot/oefenbomwerprichtboot|RJ3, M81, A963||
|A964|[[MTB433 (1943)]]| {{MTB433 (1942)!!per}} |{{MTB433 (1942)!!soort}}|{{MTB433 (1942)!!reg}}||
|A965|?| ? |torpedovolgboot|RJ1, MTB229, A965||
|||||||
|A969|?| 1877-1961+ |oliebergplaats/hulpschip|MVP779, RT2, A969, Y8532||
|A970|?| ? |tankschip, olieprauw|R53, Y8533, A970||
|||||||
|A972|?| 1945-1980 |riviertankschip|RT7, A972, Y8535||
|||||||
|A975|?| ?-1963 |waterboot|MVP758, A975, Y8483||
|A976|?| 1940-1975 |motortransportvaartuig|MTD I, RC44, RC01, A976, Y8751||
|A977|?| 1915-1966 |motortransportvaartuig|MTDII, RC02, A977, Y8752||
|A978|?| 1912-1966 |motortransportvaartuig|MTDIII, RC03, A978, Y8753||
|||||||
|A982|@@.c Zierikzee@@| ? |betonningsvaartuig|Coldewey, A982, A912||
|A983|@@.c Stormvogel@@| ? |loodsvaartuig|A983, A913||
|A984|@@.c Zilvermeeuw (1954)@@| 1954-? |loodsvaartuig|A984, A914||
|A985|@@.c Delfzijl@@| ? |betonningsvaartuig|Borndiep, Logger 3203, A985, A915||
|A986|@@.c Rotterdam@@| ? |betonningsvaartuig|No 4, Zeemeeuw, A986, A916||
|A987|@@.c Walvis (1965)@@| 1965-? |loodsvaartuig|No 8, A987, A917||
|A988|@@.c Bruinvis (1965)@@| 1965-? |loodsvaartuig|No 9, A988, A918||
|A989|@@.c Zeearend@@| ? |loodsvaartuig|No 1, A989, A921||
|A990|@@.c Zeemeeuw@@| ? |loodsvaartuig|No 3, Texel, A990, A922||
|||||||
|A992|@@.c Kabeljauw@@| ? |loodsvaartuig|A992, A924||
|A993|@@.c Makreel@@| ? |loodsvaartuig|A993, A929||
|A994|@@.c Rog@@| ? |loodsvaartuig|A994, A930||
|A995|@@.c Geep@@| ? |loodsvaartuig|A995, A931||
|A996|@@.c Spiering@@| ? |loodsvaartuig|A996, A932||
|A997|@@.c Haai@@| ? |loodsvaartuig|No 1, A997, A933||
|A998|@@.c Jan van Gent@@| ? |loodsvaartuig|No 4, A998, A934||
|A999|@@.c Albatros@@| ? |loodsvaartuig|No 6, A999, A935||
|||||||
!! Ondersteuningsvaartuigen volgens pennantnummer 'Y...'
<<<
In 1950 begonnen met Y + 3 cijfers. Omdat het aantal Y-vaartuigen te groot werd is in 1953 besloten over te gaan op een 4-cijferig Y-sein. Sommige van de 'omgenummerde' vaartuigen kregen wel administratief een 4-cijferig Y-sein toegewezen, maar werden, voordat dat effectief werd, al van de sterkte afgevoerd. Daardoor kunnen er hiaten zitten in die 4-cijferige Y-lijst.
<<<
|Ondersteuningsvaartuigen 'Y'|<|<|<|<|<|h
|# |Naam |Dienstperiode |Type |Registratie |Opmerkingen |h
|||||||
|Y804|?| 1952-1971 |<<mouseover "MUD boot" "MUD boot">>|Y804, Y8211|ex US Coastguardboat N5|
|Y805|?| 1951-1968 |motorschouw|Y805, Y8248, WM4-5101||
|||||||
|Y807|Mok1 ([[Hendrik Karssen (1939)]])| {{Hendrik Karssen (1939)!!per}} |{{Hendrik Karssen (1939)!!soort}}|{{Hendrik Karssen (1939)!!reg}}||
|||||||
|Y809|?| 1951-1976 |motorschouw|Y809, Y8253, WM4-5103||
|Y812|?| 1945-1963 |motorsloep|MOD14, RC33, Y812, Y8247|krijgsbuit|
|||||||
|Y817|?| 1945-1968 |motorsloep|RC61, Y817, Y8232||
|||||||
|Y819|?| 1947-1967 |motorsloep|RC4, Y819, Y8239||
|||||||
|Y826|?| 1952-1972 |motorschouw|Y826, Y8250, WM4-5102||
|Y827|?| ? |communicatievaartuig|MOD17, MVP615, MV838, RK2, Y827, Y8120|krijgsbuit|
|Y828|?| 1952-1973 |<<mouseover "MUD boot" "MUD boot">>|Y828, Y8215|US Coastguardboat|
|||||||
|Y832|Rammekens| -1951 |motorsloep|Rammekens, RK5||
|Y832|Aquarius| 1953-1993 |waterboot|Y832, Y8480, Aquarius||
|Y833|?| ? |duiksloep|RK7, Y833, Y8123|V.m. Verkehrsboot Kriegsmarine; krijgsbuit|
|Y834|?| 1952-1988 |<<mouseover "MUD boot" "MUD boot">>|Y834, Y8216|US Coastguardboat|
|||||||
|Y836|?| 1952-1988 |<<mouseover "MUD boot" "MUD boot">>|Y836, Y8217|US Coastguardboat|
|Y837|?| 1952-1973 |<<mouseover "MUD boot" "MUD boot">>|Y837, Y8218|US Coastguardboat|
|Y838|?| 1949- - 1967+ |motorsloep|M107, RK24, Y838, Y8311||
|||||||
|Y855|?| 1952-1988 |<<mouseover "MUD boot" "MUD boot">>|Y855, Y8220|US Coastguardboat|
|Y856|?| 1933-1966 |overslagboot|RK14, Y856, Y8263||
|||||||
|Y861|?| 1941-1955 |<<mouseover "OSRD boot" "OSRD boot">>|ML136, Y861, P861||
|Y863|?| 1945-1967 |opnemingsvaartuig / communicatievaartuig|WDP1, RY9, Y863, A911, Y8240|V.m. Verkehrsboot Kriegsmarine; krijgsbuit|
|Y864|?| 1945-1953 |hulpopnemingsvaartuig|MV42, ML138, RY2, A912, Y864||
|||||||
|Y867|?| 1945-1968 |motorsloep / communicatievaartuig|RC22, Y867, Y8236|krijgsbuit|
|||||||
|Y874|?| ? |motorvlet|Y874, Y8256, WM5-5103||
|Y875|?| ? |motorvlet|Y875, Y8257, WM5-5105||
|||||||
|Y880|?| 1945-1963 |motorsloep|RC42, Y880, Y8132||
|||||||
|Y882|Niveau| 1952-1973 |munitietransportvaartuig|Y882, Y8502||
|||||||
|Y888|Lena| 1900-1987 |dekschuit / lange assenboot / opslag vuile olie boot|RW5, MVP753, RE61, RF06, Y888, Y8403||
|||||||
|Y8001|[[Dokkum (1955)]]| {{Dokkum (1955)!!per}} |{{Dokkum (1955)!!soort}}|{{Dokkum (1955)!!reg}}||
|Y8001|[[Van Speijk (1986)]]| 1986-1995 |proefstation|Y8001||
|Y8002|Sorido (ex Con)| 1949-1960 |sleepboot|Con, Sorido, DVS, T201, Con, A834, Y8002||
|Y8003|Lex| 1948-1953 |sleepboot|T202, HS3, A835, Y8003||
|Y8004|Dorus Rijkers| 1950-1968 |sleepboot|Marinesleepboot nr. 1, RS01, A841, Y8004||
|Y8005|?| 1937-1983 |sleepboot|Sleepdienst 1, Marine sleepdienst 3, Sleepdienst 2, Marinesleepdienst 2, RS02, A842, Y8005||
|Y8005|?| ? |press and VIP vessel|R53, Y8533, A970, Y8005||
|Y8006|?| 1937-1977 |sleepboot / verwarmingsboot|Sleepdienst II, Marine sleepdienst 3, RS03, A 843, Y8006||
|||||||
|Y8008|?| 1939-1966 |sleepboot|MVP165, Sleepdienst 6, RS06, A846, Y8008||
|Y8009|?| 1945-1968 |sleepboot|MVD7, KM7, RS11, A851, Y8009||
|Y8010|Agatha| 1946-1966 |sleepboot|Agatha, Elly, KM8, RS12, A852, Y8010||
|Y8011|?| 1915-1966 |sleepboot|M11, KM25, RS16, A856, Y8011||
|Y8012|?| 1940-1966 |sleepboot|KM24, RS14, A854, Y8012||
|Y8013|?| 1945-1963 |sleepboot(je)|KM23, RS15, A855, Y8013||
|Y8014|Jade| 1942-1988 |sleepboot|Jade, Onderzeedienst 4, RS17, A857, Y8014||
|Y8015|?| 1938-1968 |sleepboot|Onderzeedienst 5, RS18, A858, Y8015||
|Y8016|Bambi| 1953-1991 |sleepboot|Bambi, Y8016||
|Y8017|Dombo| 1955-1996 |sleepboot|Dombo, Y8017||
|Y8018|Breezand| 1989- |sleepboot|Breezand, Y8018||
|Y8019|?| 1953 -1958 |sleepboot|Onderzeedienst 12, RS31, A864, Y8019||
|Y8019|Balgzand| 1990- |sleepboot|Balgzand, Y8019||
|||||||
|Y8021|Volendam| 1946-1966 |sleepboot|Volendam 8, XWT1389, KM26, RS26, A866, Y8021||
|Y8022|Figuas| 1942 -1979 |sleepboot|Figuas, Gejo, MCTV5, KM4, RS27, A867, Y8022||
|||||||
|Y8024|Alta| 1946-1966 |sleepboot|Alta, MCTV2, RS30, A870, Y8024||
|Y8025|?| 1958 |sleepboot|Y8025||
|||||||
|Y8027|Antonie II| 1939-1968 |sleepboot|Antonie II, Karla, Hoek, RS08, A848, Y8027||
|Y8028|Eems| 1939-1990 |sleepboot|Eems, Granville, MCTV3, KM15, RS28, A868, Y8028||
|Y8029|?| ?-1954 |sleepboot|MVP426, Onderzeedienst 6, RS19, A859, Y8029||
|||||||
|Y8031|Quatrième| 1940-1968 |sleepboot|Quatrieme, RS09, A849, Y8031||
|Y8032|Sija| 1939-1968 |sleepboot |Sija, 1945- Marva, 1947- RS10, 1950- A810, 1953- Y8032||
|||||||
|Y8035|Wamandai| 1962-1985 |sleepboot|A870, Y8035||
|Y8036|Wambrau| 1957-1987 |sleepboot|A871, Y8036||
|Y8037|Berkel| 1956-1987 |sleepboot|Y8037||
|Y8038|Dintel| 1957-1988 |sleepboot|Y8038||
|Y8039|Dommel| 1957-1987 |sleepboot|Y8039||
|Y8040|IJssel| 1957-1988 |sleepboot|Y8040||
|||||||
|Y8050|[[Urania (2004)]]| {{Urania (2004)!!per}} |opleidingsschip|Y8050||
|||||||
|Y8054|De Jonge Prins| 1948-1965 |commandantssloep / adviesjacht|Y8054, WM1-9001|CZM in Den Helder|
|Y8055|Schelde| 1987-? |sleepboot|Y8055||
|Y8056|Wierbalg| 1987-? |sleepboot|Y8056||
|Y8057|Lucretia| 1945-1979 |commandantssloep|Y8057, WM1-0002||
|Y8057|Malzwin| 1986-? |sleepboot|Y8057||
|Y8058|Zuidwal| 1986-? |sleepboot|Y8058||
|Y8059|Westwal| 1986-? |sleepboot|Y8059||
|Y8060|Margriet| ? |zeiljacht|Y8060||
|Y8061|Kampioen| ? |zeiljacht|Y8061|boeier|
|||||||
|Y8064|Candpus| ? |zeiljacht|Y8064|Star-klase|
|||||||
|Y8066|Kijkduin| ? |zeiljacht|Y8066||
|Y8067|?| ?-1964 |hulpvaartuig / woonark|HW19, A894, Y8067||
|||||||
|Y8100|?| ~2000 |BOZ-testvaartuig|Y8100||
|Y8101|[[Hobein (1948)]]| {{Hobein (1948)!!per}} |{{Hobein (1948)!!soort}}|{{Hobein (1948)!!reg}}||
|Y8102|Mok1 ([[Hendrik Karssen (1939)]])| {{Hendrik Karssen (1939)!!per}} |{{Hendrik Karssen (1939)!!soort}}|{{Hendrik Karssen (1939)!!reg}}||
|||||||
|Y8113|Belana| 1947-1962 |communicatievaartuig|Y8113|1962-1965 Ondina, Zeekadettenkorps Den Helder|
|Y8114|Voorwaarts| 1954-1960 |communicatievaartuig|Y8114|visserij-inspectievaartuig Voorwaarts (1913-1967)|
|||||||
|Y8120|?| ? |communicatievaartuig|MOD17, MVP615, MV838, RK2, Y827, Y8120|krijgsbuit|
|||||||
|Y8121|?| 1933-1972 |stoomafgiftevaartuig / verwarmingsvaartuig|Sleepdienst III, Marinesleepdienst 4, RS04, RK23, A844, Y8590, Y8121||
|Y8123|?| ? |duiksloep|RK7, Y833, Y8123|V.m. Verkehrsboot Kriegsmarine; krijgsbuit|
|Y8123|?| 1946-1964 |motorsloep / communicatievaartuig|MOD34, RD9, Y8123||
|Y8124|[[Argus (1939)]]| {{Argus (1939)!!per}} |{{Argus (1939)!!soort}}|{{Argus (1939)!!reg}}||
|Y8125|Buttje| 1955-1958 |barkas|(HB2 Buttje, LNG I-KL), Y8125|krijgsbuit|
|Y8126|?| 1955-1960 |sleepboot / hulpvaartuig|(LNG II-KL, Y8126|krijgsbuit|
|Y8125|[[Triton (1964)]]| {{Triton (1964)!!per}} |{{Triton (1964)!!soort}}|{{Triton (1964)!!reg}}||
|Y8126|[[Nautilus (1965)]]| {{Nautilus (1965)!!per}} |{{Nautilus (1965)!!soort}}|{{Nautilus (1965)!!reg}}||
|Y8127|Van Gendt| 1955-1959 |sleepvlet|(LNG III-KL), Y8127|krijgsbuit|
|Y8127|[[Hydra (1965)]]| {{Hydra (1965)!!per}} |{{Hydra (1965)!!soort}}|{{Hydra (1965)!!reg}}||
|||||||
|Y8131|?| ? |communicatievaartuig|Y8131||
|Y8132|?| 1945-1963 |motorsloep|RC42, Y880, Y8132||
|Y8133|?| ? |motorschouw|Y8133, WM4-5503||
|||||||
|Y8136|?| ? |motorschouw|Y8136, WM4-6001||
|||||||
|Y8200|?| 1957-1963 |communicatievaartuig / terreinboot brandblusmaterialen|Y8200||
|Y8200|?| 1989- |communicatievaartuig|Y8200||
|Y8201|?| 1989- |communicatievaartuig|Y8201||
|Y8202|?| 1990- |communicatievaartuig|Y8202||
|Y8203|?| ? |communicatievaartuig|Y8203||
|||||||
|Y8206|?| ? |<<mouseover "OSRD boot" "OSRD boot">>|ex-RAF 1565||
|||||||
|Y8211|?| 1952-1973 |<<mouseover "MUD boot" "MUD boot">>|Y804, Y8211|US Coastguardboat|
|Y8212|?| 1952-1975 |<<mouseover "MUD boot" "MUD boot">>|Y8212|US Coastguardboat|
|Y8213|?| 1952-1973 |<<mouseover "MUD boot" "MUD boot">>|Y8213|US Coastguardboat|
|Y8214|?| 1952-1973 |<<mouseover "MUD boot" "MUD boot">>|Y8214|US Coastguardboat|
|Y8215|?| 1952-1973 |<<mouseover "MUD boot" "MUD boot">>|Y828, Y8215|US Coastguardboat|
|Y8216|?| 1952-1988 |<<mouseover "MUD boot" "MUD boot">>|Y834, Y8216|US Coastguardboat|
|Y8217|?| 1952-1988 |<<mouseover "MUD boot" "MUD boot">>|Y836, Y8217|US Coastguardboat|
|Y8218|?| 1952-1973 |<<mouseover "MUD boot" "MUD boot">>|Y837, Y8218|US Coastguardboat|
|Y8219|?| 1952-1973 |<<mouseover "MUD boot" "MUD boot">>|Y8219|US Coastguardboat|
|Y8220|?| 1952-1988 |<<mouseover "MUD boot" "MUD boot">>|Y855, Y8220|US Coastguardboat|
|Y8221|| 1952-1970 |motorsloep|Y8221, WM2-5201|voor onderzeebootjagers van Holland- en Friesland-klasse|
|Y8222|| 1952-1970 |motorsloep|Y8222, WM2-5202|~|
|Y8223|| 1952-1970 |motorsloep|Y8223, WM2-5206|~|
|Y8224|| 1952-1970 |motorsloep|Y8224, WM2-5207|~|
|||||||
|Y8227|?| ~1958 |commandantssloep|Y8227, WM1-0001||
|Y8228|?| 1926-1968 |commandantssloep / admiraalssloep|Y8228, WM1-2601, M40||
|Y8229|Rose Marie?| 1945-1962 |commandantssloep|RC26, Y8229, WM1-0004||
|||||||
|Y8231|?| 1952-1965|motorsloep|RC38, MOD16, WDP II, Y8231||
|Y8232|?| 1945-1968 |motorsloep|RC61, Y817, Y8232||
|||||||
|Y8234|?| 1945-1960 |motorsloep / communicatievaartuig|Y8234||
|Y8235|?| 1945-1960 |motorsloep / communicatievaartuig|Y8235||
|Y8236|?| 1945-1968 |motorsloep / communicatievaartuig|RC22, Y867, Y8236|krijgsbuit|
|Y8237|Rose Marie?| 1945-1968 |commandantssloep|OZD2, RC 23, Y8237, WM1-0003|krijgsbuit|
|||||||
|Y8239|?| 1947-1967 |motorsloep|RC4, Y819, Y8239||
|Y8240|?| 1945-1967 |opnemingsvaartuig / communicatievaartuig|WDP1, RY9, Y863, A911, Y8240|V.m. Verkehrsboot Kriegsmarine; krijgsbuit|
|Y8241|?| 1945-1975 |motorsloep|Y8241||
|Y8241|?| ? |motorsloep|WDP3, M91, RY3, A913, Y8241||
|Y8242|?| 1939-1968 |motorsloep|Y8242||
|Y8242|?| ? |motorsloep|RY5, M82, A915, Y8242||
|Y8243|?| 1947-1959 |motorsloep|RY6, M98, A916, Y8243||
|Y8244|?| ? |motorsloep / communicatievaartuig|Y8244|krijgsbuit?|
|Y8245|?| 1945-1980 |motorsloep / communicatievaartuig|Y8245||
|Y8246|?| ? |werksloep|Y8246||
|Y8247|?| 1945-1963 |motorsloep|MOD14, RC33, Y812, Y8247|krijgsbuit|
|Y8248|?| 1951-1968 |motorschouw|Y805, Y8248, WM4-5101||
|Y8249|?| 1952-1972 |motorschouw|Y8249, WM4-5201||
|Y8250|?| 1952-1972 |motorschouw|Y826, Y8250, WM4-5102||
|||||||
|Y8253|?| 1951-1976 |motorschouw|Y809, Y8253, WM4-5103||
|Y8254|?| ? |motorsloep|RY7, M99, A917, Y8254||
|Y8255|?| ? |motorsloep|RY8, A918, Y8255||
|Y8256|?| ? |motorvlet|Y874, Y8256, WM5-5103||
|Y8257|?| ? |motorvlet|Y875, Y8257, WM5-5105||
|||||||
|Y8260|?| ? |verwarmingsvaartuig|Y8260||
|Y8261|?| 1950-1974 |verwarmingsvaartuig / stoomafgiftevaartuig|Y8261||
|Y8262|Pauline| 1939-1989 |sleepboot|Pauline, Mijnenveger 4, M4, RS7, A847, Y8262||
|Y8263|?| 1933-1966 |overslagboot|RK14, Y856, Y8263||
|||||||
|Y8270|?| ? |vlet|bouwnr. 53||
|Y8271|?| ? |vlet|bouwnr. 54||
|||||||
|Y8273|?| ? |motorvlet|Y8273, WM5-5107||
|||||||
|Y8278|?| ? |motorvlet|Y8278||
|Y8279|?| 1946-1968 |motorsloep|M92, Y8279||
|Y8280|?| ? |motorsloep|Y8280||
|Y8281|?| 1945-1961 |torpedobarkas|Y8281||
|Y8282|?| ? |motorschouw|Y8282, WM4-6202||
|Y8283|?| 1937-1967 |motorsloep|M66, Y8283||
|||||||
|Y8285|?| 1937-1970 |motorsloep|M67, Y8285||
|Y8286|?| 1939-1967 |motorsloep|Y8286||
|Y8287|?| ? |motorsloep|Y8287||
|Y8288|?| ? |vlet|Y8288||
|||||||
|Y8298|Bambina| ? |crashboat MLD|Bambina, Y8298, A912||
|Y8299|Lakahia| ? |waterprauw|Y8299||
|||||||
|Y8301|?| ? |schijfbarkas|Y8301||
|Y8302|?| ? |verwarmingsvaartuig|Y8302||
|Y8303|?| ? |vlet|Y8303||
|Y8304|?| ? |motorsloep|Y8304|torpedotransport|
|Y8305|?| 1948-1960 |sleepboot / verwarmingsboot|Sleepdienst IV, Marinesleepdienst 5, RS05, A845, Y8305||
|Y8306|?| ? |roei/zeilsloep|WR1-5304||
|Y8307|?| ? |roei/zeilsloep|WR1-5301||
|Y8308|?| ? |sloep|||
|Y8309|?| ? |roei/zeilsloep|WR1-5003||
|||||||
|Y8311|?| 1949- - 1967+ |motorsloep|M107, RK24, Y838, Y8311||
|||||||
|Y8313|?| ? |motorsloep|Y8313||
|||||||
|Y8316|?| ? |vlet|Y8316||
|Y8317|?| ? |jol|RK17, A859, Y8317, WR4-3401||
|Y8318|?| ? |vlet|Y8318||
|||||||
|Y8321|?| ? |dekschuit|Y8321||
|Y8322|?| ? |dekschuit|Y8322||
|||||||
|Y8324|?| ? |dekschuit|Y8324||
|Y8325|?| ? |dekschuit|Y8325||
|||||||
|Y8327|?| ? |dekschuit|Y8327||
|||||||
|Y8329|?| ? |dekschuit|Y8329||
|||||||
|Y8332|?| ? |dekschuit|Y8332||
|Y8333|?| ? |dekschuit|Y8333||
|||||||
|Y8335|?| ? |dekschuit|Y8335||
|||||||
|Y8337|?| ? |dekschuit|Y8337||
|||||||
|Y8351|?| ? |tankvaartuig|Y8351||
|Y8352|?| ? |tankvaartuig|Y8352||
|||||||
|Y8403|Lena| 1900-1987 |dekschuit / lange assenboot / opslag vuile olie boot|RW5, MVP753, RE61, RF06, Y888, Y8403||
|||||||
|Y8451|?| 1945-1962 |rijnaak met landingsklep|Y8451||
|||||||
|Y8480|Aquarius| 1951-1993 |waterboot|Y832, Y8480, Aquarius||
|||||||
|Y8483|?| ?-1963 |waterboot|MVP758, A975, Y8483||
|||||||
|Y8500|Pax| 1953-1998 |logementschip|Y8500||
|Y8501|Ondina| 1952-1976 |munitietransportvaartuig|Y8501||
|Y8502|Niveau| 1952-1973 |munitietransportvaartuig|Y882, Y8502||
|Y8503|?| 1930-1969 |munitieprauw|Y8503||
|||||||
|Y8506|?| ? |munitielichter|munitielichter IV, Y8506, A934, RA4||
|Y8507|?| ? |munitielichter|A935||
|||||||
|Y8509|?| 1930-1966 |munitieprauw|RA07, A937, Y8509||
|Y8510|?| 1949-1958 |werkvaartuig mijnendienst|RA08, A938, Y8510||
|Y8511|?| 1950-1968 |torpedotransportschip|A939, Y8511||
|Y8512|?| 1951-1983+ |torpedotransportschip|A940, Y8512|Augurk|
|||||||
|Y8514|?| ? |drijvende kraan|Y8514||
|||||||
|Y8532|?| 1877-1961+ |oliebergplaats / hulpschip|MVP779, RT2, A969, Y8532||
|Y8533|?| ? |tankschip, olieprauw|R53, Y8533, A970||
|Y8534|Olifant| 1868-1967 |stoombok / tankponton|Y8534|ex stoombok Olifant|
|Y8535|?| 1945-1980 |riviertankschip|RT7, A972, Y8535||
|Y8536|?| 1945-1967 |benzinetransportvaartuig|Y8536|ex RAFvaartuig|
|Y8536|Patria| 1977-2005 |tankvaartuig|Y8536||
|Y8537|?| 1945-1966 |benzinetransportvaartuig|Y8537|ex RAFvaartuig|
|||||||
|Y8590|?| 1933-1972 |stoomafgiftevaartuig / verwarmingsvaartuig|Sleepdienst III, Marinesleepdienst 4, RS04, RK23, A844, Y8590, Y8121||
|||||||
|Y8620|Dreg IV| 1950-1986 |dregboot / communicatievaartuig|A920, 1970- Y8620||
|||||||
|Y8651|[[Argus (1939)]]| {{Argus (1939)!!per}} |{{Argus (1939)!!soort}}|{{Argus (1939)!!reg}}||
|Y8652|Ebbe| ? |duiksloep|RD1, A951, Y8652||
|Y8653|?| 1946-1957 |duiksloep|RD2, A952, Y8653||
|Y8654|Anna Helena| ? |duiksloep|RD3, A953, Y8654||
|Y8655|?| ? |duiksloep|RD4, A954, Y8655||
|Y8656|?| 1938-1957 |duiksloep|WVD12, MOD6, RD5, A955, Y8656||
|||||||
|Y8658|?| 1945-1957 |duiksloep|MODIV, RD9, A959, Y8658||
|Y8659|?| ? |?|A960, Y8659||
|||||||
|Y8676|?| 1962-1986 |varende elektrische centrale|Y8676||
|Y8677|Dok III| 1907-1976 |dok|Dok III, Y8677||
|Y8678|Dok IV| ? |drijvend dok|Dok IV, Y8678||
|Y8679|Dok V| 1960-1993 |drijvend dok|Dok V, Y8679||
|Y8680|?| ? |wrakkensimulator|Y8680||
|Y8681|?| 1930-1976 |drijvende kraan|RB2, A922, Y8681||
|||||||
|Y8684|?| 1947-1975 |drijvende stoombok|RB3, A923, Y8684||
|Y8685|?| 1919-1960 |bok|RB1, A921, Y8685||
|Y8686|?| ? |zelfvarende kraan|RD109, Y8686||
|Y8687|?| 1951-1975 |gevechtsschietschijf|Y8687||
|Y8688|?| 1951-1975 |gevechtsschietschijf|Y8688||
|Y8689|?| 1955-2000 |hogevaart schietschijf|Y8689||
|||||||
|Y8691|?| ? |doelschijf?|Y8691||
|Y8692|?| ~1957-? |kleine gierschijf|Y8692||
|Y8693|?| ? |doelschijf?|Y8693||
|||||||
|Y8711|?| 1945-1997 |ponton|Y8711|ex U.S.ARMY|
|Y8712|?| 1945-1997 |ponton|Y8712|ex U.S.ARMY|
|||||||
|Y8714|?| 1945-2000 |ponton|Y8714|Ex U.S.ARMY|
|Y8715|?| 1945-1974 |dekschuit|Y8715|ex U.S.ARMY|
|||||||
|Y8751|?| 1940-1975 |motortransportvaartuig|MTD I, RC44, RC01, A976, Y8751||
|Y8752|?| 1917-1966 |motortransportvaartuig|MTD II, RC02, A977, Y8752||
|Y8753|?| 1912-1966 |motortransportvaartuig|MTD III, RC03, A978, Y8753||
|||||||
|Y8760|Patria| 1998- |motortankschip|Y8760||
|||||||
!!! Onderzeebootjager
Een schip ter bestrijding van onderzeeboten.
# [[Torpedobootjager]] die speciaal is ingericht voor de bestrijding van onderzeeboten; na WWII.<br>
# Met torpedomotorboot vergelijkbaar schip (qua grootte) ter bestrijding van onderzeeboten; vnl. gebruikt tijdens WWII.
<<w>>
<$tiddler tiddler=<<currentTab>>>
{{||$:/_pennantnummer_template}}
</$tiddler>
<!--
1) Kloon $:/_pennantnummer_details_template
2) Hernoem tiddler tot 'Schepen' (b.v. Fregatten)
3) Vervang in veld 'filter' de 'C' (voor kruisers) door het bijbehorende voorvoegsel toe (voor fregatten 'F')
<<penlinks filter char>>
vereist in TW5.1.17 $:/core/modules/filters/regexps.js
-->
!!! Supermarine Walrus I, PH-NAW
Het vliegtuig werd, na het compenseren van het kompas op Wingfield (vliegveld bij Kaapstad), teruggevlogen naar de 'Willem Barentsz'. Om 12.10 uur werd weer in de Tafelbaai geland.<br>
Omdat het vertrek van de 'Willem Barentsz' uitgesteld werd, was er nog wat tijd over voor extra oefeningen. Er werd dus weer gestart.<br>
Even voor, of in het begin van, de aanloop kwam er van de 'Willem Barentsz' een bericht binnen met een vraag over het benzineverbruik van de Walrus. De radiotelegrafist gaf het bericht aan waarnemer Kuiper die hem duidelijk maakte dat hij het wel aan de bestuurder zou geven. Kuiper ging daarop naar voren terwijl het vliegtuig met de startrun bezig was. Toen het vliegtuig aan het eind van de aanloop zich juist boven het water bevond, voelde de bestuurder een krachtige duw tegen zijn rechter bovenarm. Deze duw was het gevolg van het struikelen van de heer Kuiper. Hierdoor werd het stuurwiel plotseling naar voren geduwd en dook het vliegtuig het water in. De waarnemer kwam hierbij om het leven. Het vliegtuig werd onherstelbaar beschadigd.
|borderless|k
|Gezagvoerder:| |J. van Donkelaar|
|Telegrafist:||H.W. Hogenkamp|
|Waarnemer:||L. Kuiper (†)|
|Radardeskundige:||J.R. Addison|
!! Ontstaan van deze databank
Bij de foto's van Jacob Olie, Johannes Scherpenisse en Bernard Eilers zitten ook een aantal foto's van oude oorlogsschepen met typenamen als ramtorenschip, schroefstoomschip, monitor, pantserdekschip, etc.<br>
De bovengenoemde 'oude benamingen' geven de uitvoering aan; later werd er vaker gesproken over de functie van een oorlogsschip, b.v. een kruiser:
> Een kruiser is een oorlogsschip dat veel taken kan uitvoeren zoals het bekampen van vijandelijke oorlogsschepen, patrouilleren, beschermen van de handelsroutes, verkenningstaken en het versterken van de aanvalskracht van vlooteenheden.
Door overlap van functies wordt het onderscheid tussen b.v. torpedobootjagers, kanonneerboten, fregatten, escorteschepen, ... redelijk vaag.
Verwarrend is ook dat er in de loop van de tijd meerdere schepen zijn geweest met dezelfde naam en dat er ook nog naamsveranderingen - zelfs tijdelijke - hebben plaatsgevonden.<br>Als voorbeeld van beide mogelijkheden zie b.v. <<popup "Van Speijk" "Van Speijk_info">> en <<popup "De Ruyter" "De Ruyter_info">>.
Daarnaast maken de letter/cijfer-combinaties op de romp het nog moeilijker. Neem b.v. de mijnenveger (later fregat) [[Boeroe (1946)]] met de in de loop der tijd (`jaartal-` geeft aan vanaf) de volgende aanduidingen: ''MV26'', 1946- ''PK6'', 1947- ''P11'', 1950- ''M814'', 1952- F814, ''A871''.
De databank is opgezet om wat meer duidelijkheid te geven en om een schip op een foto te kunnen 'determineren'.<br>De databank bestrijkt grofweg de periode 1860 (overgang van hout naar ijzer/staal als constructiemateriaal voor schepen) tot heden.
<<slider "Aantal marineschepen (1945 - heden)" "Marineschepen 1945-">>
{{||$:/_ship_template}}
* <<slider "Oceaanmijnenveger Onverdroten ca. 1960" Schepen325>>
In 1965 werd de Onverdroten geherklasseerd tot hoofdkwartier-ondersteuningsschip ten behoeve van de Mijnendienst.<br>
In 1982 uit dienst gesteld.
{{||$:/_ship_template}}
* <<slider "Oceaanmijnenveger Onvermoeid ca. 1970" Schepen217>>
In 1965 werd de Onvermoeid herklasseerd tot hoofdkwartier-ondersteuningsschip ten behoeve van de Mijnendienst.<br>In 1971 uit dienst gesteld.
Dit is een van de weinige schepen die nooit meer als mijnenveger heeft dienst gedaan.<br>
Het schip werd vrijwel direct na de aankomst in Nederland uit dienst gesteld en in reserve geplaatst.<br>
In 1973 werd het schip opnieuw in dienst gesteld, ditmaal als Noordzee-opnemingsvaartuig. Na drie jaar werd het schip weer uit dienst genomen en ditmaal definitief.
In USA gebouwde kustmijnenvegers van de Agressive-klasse.<br>
De schepen zijn gebouwd van hout.
Verkregen via <<popup MDAP MDAP>>.<br>
Zie ook [[marinematen|https://web.archive.org/web/20070213045632/http://www.marinematen.com/mercuur/historie.htm]] (webarchief).
Na de uitdienstneming als mijnenveger escorteschip werd het schip in 1973 verbouwd tot torpedowerkschip en hernoemd tot ''Mercuur (A856)''.<br>In 1987 uit dienst gesteld.
{{||$:/_ship_template}}
* <<slider "Oceaanmijnenveger Onvervaard ca. 1960" Schepen324>>
{{Onvermoeid (1954)_info}}
{{||$:/_ship_template}}
* <<slider "Mijnenveger Oosterschelde ca. 1953" Schepen453>>
Oorspronkelijk US YMS-230, daarna Brits BYMS 2230.<br>
{{YMS47}}
Oceanografisch Onderzoeksvaartuig
{{||$:/_ship_template}}
* <<slider "Torpedoboten Rindjani, Ophir en Pangrango, ca. 1910" Schepen343>>
!!! Opleidingsschip
De marine kent nu 2 opleidingsschepen:
* {{Urania (2004)_info}}
* {{Van Kinsbergen (1999)_info}}
<<<
In het verleden waren er meerdere opleidingsschepen, o.a.:
* Zeearend, opleidingsschip onderzeebootbestrijding (1940-1971)
* Hendrik Karssens, opleidingsschip voor adelborsten (1949-1973)
* ...
<<<
<<w>>
!!! Opnemingsvaartuig
Een van de <<popup ondersteuningsschepen Ondersteuningsschip>>.<br>
Schip van de hydrografische dienst, waarop met behulp van een uitgebreid arsenaal aan navigatiemiddelen waarnemingen worden gedaan, die op zeekaarten worden verwerkt (v.n.l. veranderingen van de vaarwegen en de zeebodem).<br>
De marine doet dit in de wateren van het hele Nederlands continentale plat en rondom de Nederlandse Antillen en Aruba.
<<w>>
OPV = Ocean Patrol Vessels, Oceangoing Patrol Vessels of Offshore Patrol Vessels.
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Orion ca. 1925" Schepen393>>
{{NI}} Vanaf WWI tot 1939 bij de Dienst der Bebakening en Kustverlichting. Vanaf 1924 als hydrografisch opnemingsvaartuig bij de {{GM}}. Eind jaren 30 verbouwd tot lichtschip en verankerd bij Balikpapan, Oost-Borneo.<br>
Op 22 januari 1942 door de K XVIII met kanonvuur tot zinken gebracht.
!! OSRD boot
Vaartuig ten behoeve van de Opsporings- en Reddingsdienst van de Koninklijke Marine.
<<w>>
! [[Other fighting ships]]
!! Paddle and screw 4 class ships, large gunboats
<br>
# [[Aruba (1873)]] 4 class screw ship
# ''Batavia'' 4 class screw ships (1876-1880)
#* [[Batavia (1877)]]
#* [[Makasser (1877)]]
#* [[Madura (1880)]]
#* [[Samarang (1877)]]
#* [[Bonaire (1877)]]
#* [[Padang (1879)]]
#* [[Bali (1878)]] (ex-St. Eustatius)
#* [[Benkoelen (1880)]]
# [[Suriname (1877)]] 4 class screw ship
# ''Ceram'' 4 class screw ships (1887)
#* [[Ceram (1887)]]
#* [[Flores (1887)]]
# ''Lombok'' 4 class screw ships (1891)
#* [[Lombok (1891)]]
#* [[Sumbawa (1891)]]
# [[Borneo (1892)]] 4 class screw ship
# ''Nias'' 4 class screw ships (1895-1897)
#* [[Nias (1895)]]
#* [[Mataram (1896)]]
#* [[Edi (1897)]]
#* [[Serdang (1897)]]
# ''Koetei'' 4 class screw ships (1898-1900)
#* [[Koetei (1898)]]
#* [[Siboga (1898)]]
#* [[Assahan (1900)]]
# ''Brinio'' gunboats (1912-1913)
#* [[Brinio (1914)]]
#* [[Friso (1915)]]
#* [[Gruno (1915)]]
# ''Flores'' gunboats (1926)
#* [[Flores (1926)]]
#* [[Soemba (1926)]]
# [[Johan Maurits van Nassau (1933)]] gunboat
# "A" gunboats (VAN SPEYK, 1942/1946)
#* ~~A~~
#* ~~B~~
#* [[Van Speijk (1946)]] (ex-K3, ex-"C")
!! Gunboats
<br>
# ''Hydra'' gunboats (1872-1876)
#* [[Hydra (1873)]]
#* [[Brak (1875)]]
#* [[Ever (1873)]]
#* [[Vos (1875)]]
#* [[Lynx (1875)]]
#* [[Geep (1875)]]
#* [[Gier (1875)]]
#* [[Raaf (1875)]]
#* [[Das (1876)]]
#* [[Bever (1876)]]
#* [[Sperwer (1875)]]
#* [[Dog (1874)]]
#* [[Fret (1876)]]
#* [[Havik (1874)]]
# ''Wodan'' gunboats (1877-1884)
#* [[Thor (1877)]]
#* [[Freyr (1877)]]
#* [[Tyr (1878)]]
#* [[Braga (1879)]]
#* [[Balder (1879)]]
#* [[Hefring (1880)]]
#* [[Hadda (1880)]]
#* [[Njord (1878)]]
#* [[Heimdall (1879)]]
#* [[Vali (1879)]]
#* [[Ulfr (1879)]]
#* [[Dufa (1879)]]
#* [[Udur (1879)]]
#* [[Bulgia (1884)]]
#* [[Vidar (1879)]]
#* [[Wodan (1877)]]
!! River gunboats
<br>
# [[Vahalis (1870)]] river gunboat
# ''Isala'' river gunboats (1876-1879)
#* [[Isala (1876)]]
#* [[Rhenus (1877)]]
#* [[Mosa (1876)]]
#* [[Merva (1879)]]
{{$:/_digital-clock}}
Deze wiki is ontstaan als een afsplitsing van mijn Hugo de Grootbuurt wiki en bevat technisch interessante zaken die getriggerd werden door het werk aan de 'Hugo de Grootbuurt' wiki maar in principe niets te maken hadden met de Hugo de Grootbuurt (en 'omstreken'). Zoals @@.big [[elektrische auto's|Elektrische auto's]]@@, @@.big [[walvisvaart|Walvisvaart]]@@, @@.big [[marineschepen|Marineschepen]]@@ en @@.big [[watervliegtuigen|Watervliegtuigen]]@@ (met inmiddels veel meer informatie dan oorspronkelijk in de Hugo de Grootbuurt wiki).
|borderless|k
|Samensteller: ||<<popup "Ton Gerner" TonGerner>>|
|Aantal tiddlers (=informatieblokken): | |<$count filter="[!is[system]]"/>|>|>|
|Aantal foto's/prenten/kaarten: ||<$count filter="[!is[system]search[jpg]][!is[system]search[png]]"/>|>|>|
|~TiddlyWiki versie: ||TW v<<version>>|>|>|
|Voor aanvullingen/verbeteringen etc.: ||e-mail mij |{{Mail_to1}}| {{Mail_to2}}|
<!--
jpg = <$count filter="[!is[system]search[jpg]]"/>
---
png = <$count filter="[!is[system]search[png]]"/>
-->
{{||$:/_ship_template}}
* <<slider "Mijnenveger Overflakkee ca. 1948" Schepen234>>
{{||$:/_ship_template}}
* <<slider "Proefschip Paets van Troostwijck 1950" Schepen427>>
* <<slider "Proefschip Paets van Troostwijck ca. 1955" Schepen428>>
In 1924 in Noorwegen gebouwd als Duitse walvisjager (Süd III).<br>
Gedurende WWII was het schip onderdeel van de 'Vorpostenflottille 17' van de Kriegsmarine en actief in de Finse golf.<br>
In 1946 overgedragen aan Nederland (krijgsbuit). In 1948 werd een marineofficier getipt over dit schip dat inmiddels bij een sloperij lag. Het had veel elektronische apparatuur aan boord had. Dit bleek Duitse sonar apparatuur ('ASDIC') te zijn. Het schip werd door de marine aangeschaft, gerenoveerd.<br>
Het werd in 1949 in dienst gesteld als Paets van Troostwijck met als registratie HE1 (Hulpschip Experimenteel 1) en vanaf 1950 als A893. Het is voornamelijk gebruikt als proefschip voor het testen van onderzeeboot bestrijdings aparatuur.
!! Pagina-indeling
<a href="Foto/Layout.png" title="Klik voor een grotere versie (opent in een aparte tab)" target="_blank">
<img src="Foto/Layout.png"/>
</a>
{{||$:/_ship_template}}
* <<slider "Torpedoboten Rindjani, Ophir en Pangrango, ca. 1910" Schepen343>>
{{||$:/_ship_template}}
* <<slider "Rammonitor Panter ca. 1888" Schepen377>>
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Panter 2001" Schepen462>>
!!! Pantserdekkorvet
Oudere benaming voor pantserdekschip.
<<w 350px>>
!!! Pantserdekschip
Een type schip met een gepantserd dek dat later (lichte) kruiser werd genoemd. Vandaar ook de alternatieve naam pantserkruiser.
<<w>>
!!! Pantserkruiser
Een schip met een gepantserd dek en pantser langs de zijkant. Dit type werd verdrongen door de slagkruiser.
<<w>>
!!! Pantserschip
Een type schip met zware kanonnen bedoeld om vijandige kruisers in kustwateren uit te schakelen. Vaak gebruikt door kleinere marines die zich geen slagschepen konden veroorloven of nodig hadden.<br>
Een schip dat het midden hield tussen een kustverdedigingsschip en een (klein) slagschip.
<<w>>
<$tiddler tiddler=<<currentTab>>>
{{||$:/_pennantnummer_template}}
</$tiddler>
---
|Patrouilleschepen|<|<|<|h
|#|Naam schip|Dienstperiode|Opmerkingen qua registratie|h
|P819|?| 1946-1956 |HMS161/ML161, HDML1407, HY4, MV41, P819, 1952- A904|
|P820|?| 1946-1952+ |HMS160/ML162, HDML1409, HY5, KV44, P820, 1952- A905|
|P861|?| 1941-1955 |ML136, Y861, P861||
|P862|?||||
<!--
1) Kloon $:/_pennantnummer_details_template
2) Hernoem tiddler tot 'Schepen' (b.v. Fregatten)
3) Vervang in veld 'filter' de 'C' (voor kruisers) door het bijbehorende voorvoegsel toe (voor fregatten 'F')
<<penlinks filter char>>
vereist in TW5.1.17 $:/core/modules/filters/regexps.js
-->
!!! Patrouilleschip
De gebruikelijke betekenis is door de jaren heen veranderd.
# Oud: Een klein schip (tot ca. 200 ton) dat gebruikt wordt voor betrekkelijk eenvoudige patrouille- en bewakingstaken in binnenwateren, kuststroken en riviermonden.
# Later: Schepen die qua grootte wedijveren met fregatten en in staat zijn gevechtstaken te verrichten in het lage geweldspectrum.
<<w>>
Voormalige Patrol Craft Escorts (PCE) van de US Navy die in 1954, in het kader van het <<popup MDAP MDAP>>, aan Nederland zijn overgedragen.
{{||$:/_ship_template}}
* <<slider "Pelikaan-divisie 1923" Schepen445>>
* <<slider "Werkplaats aan boord van Pelikaan 1922" Schepen364A>>
* <<slider " Onderzeebootmoederschip Pelikaan 1925" Schepen363>>
* <<slider " Onderzeebootmoederschip Pelikaan ca. 1928" Schepen364>>
Onderzeebootmoederschip. Mobiel onderdak voor onderzeebootbemanningen en werkplaats met opslag materiaal.<br>
{{NI}} Vormde daar met [[KII (1922)]], [[KVII (1922)]] en [[KVIII (1922)]] de z.g. Pelikaan-divisie.<br>
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Pelikaan (A830) ca. 1960" Schepen194>>
Origineel een landingsvaartuig van de Britse marine. In 1948 overgenomen en verbouwd.<br>
LST3520, Thruster, LST, F131, 1948- HQ3, 1950- A830.
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Pelikaan (A801) ca. 2000" Schepen195>>
Voormalige kustvaarder ''Kilindoni''.
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Pelikaan ca. 2010" Schepen199>>
[[Facebook: Stichting Exploitatie Catalina|https://www.facebook.com/DutchCatalina/]]
{{||$:/_ship_template}}
* <<slider "Fregat Philips van Almonde 1987" Schepen473>>
Na de uitdienstname werd de Philips van Almonde verkocht aan Griekenland.<br>
Bij de Griekse marine is het schip op 24 oktober 2003 in dienst genomen als ''Themistoklis'' (F465).
[[Wikipedia|https://nl.wikipedia.org/wiki/Piet_de_Jong_(politicus)]]
<iframe src='https://nl.wikipedia.org/wiki/Piet_de_Jong_(politicus)' frameborder="0" width="1024"; height="600"></iframe>
Op 13 mei 1940 vertrok hij met de - niet geheel afgebouwde - duikboot O24 naar Engeland. Gedurende WWII nam hij als oudste officier en vanaf medio 1944 als commandant van de O24 deel aan de gevechten. In april 1946 keerde hij met O24 terug in Nederland. Zie [[Piet de Jong]] voor meer informatie.
{{||$:/_ship_template}}
* <<slider "Pantserschip Piet Hein 1896" Schepen309>>
* <<slider "Pantserschip Piet Hein 1896" Schepen299>>
* <<slider "Pantserschip Piet Hein 1909" Schepen005>>
* <<slider "Pantserschip Piet Hein 1909" Schepen028>>
* <<slider "Pantserschip Piet Hein 1909" Schepen150>>
* <<slider "Pantserschip Piet Hein 1911" Schepen026>>
* <<slider "Pantserschip Piet Hein 1911" Schepen027>>
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Piet Hein, ca. 1930" Schepen119>>
* <<slider "Torpedobootjager Piet Hein, ca. 1935" Schepen118>>
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Piet Hein 1945" Schepen121>>
* <<slider "Torpedobootjager Piet Hein ca. 1958" Schepen120>>
Ex-Britse ''Serapis'' (G94).<br>
In 1956/1957 op de Rijkswerf Willemsoord te Den Helder verbouwd tot snel fregat.
{{||$:/_ship_template}}
* <<slider "Fregat Piet Hein ca. 1990" Schepen214>>
Na de uitdienstname werd de Piet Hein verkocht aan de Verenigde Arabische Emiraten.<br>
Daar werd het in op 27 juni 1998 in dienst genomen als ''Al Emirat'' (F02).
{{||$:/_ship_template}}
* <<slider "Pieter de Bitter 1937" Schepen162>>
{{Jan van Amstel!!ships}}
In 1937 naar Nederlands-Indië gevaren en daar werd de registratie veranderd van ''B'' naar ''BT'' om verwarring met de mijnenveger [[B (1930)]] te voorkomen.<br>
Op 6 maart 1942 tot zinken gebracht in de haven van Soerabaja.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Pieter Florisz 1938" Schepen159>>
* <<slider "Mijnenveger Pieter Florisz ca. 1948" Schepen357>>
In 1940 tot zinken gebracht, door de Duitsers gelicht en omgebouwd to torpedotestschip.<br>
Na de oorlog teruggegeven en weer in dienst genomen.
{{||$:/_ship_template}}
* <<slider "Fregat Pieter Florisz ca. 1992" Schepen474>>
Het schip is het tweede schip dat daadwerkelijk onder de naam Pieter Florisz dienst heeft gedaan, een eerder schip van de Kortenaerklasse - Pieter Florisz (1981) - werd tijdens de bouw al verkocht aan Griekenland.<br>
Na de uitdienstname werd de Pieter Florisz verkocht aan Griekenland (voor de overdracht werd de Goalkeeper verwijderd.<br>
Bij de Griekse marine is het schip op 9 november 2002 in dienst genomen als ''Bouboulina'' (F463).
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Poema 1999" Schepen461>>
{{NI}} Vanaf 1923 als bebakeningvaartuig actief.<br>
In 1939 gemilitariseerd. Op 2 maart 1942 door de eigen bemanning tot zinken gebracht in de haven van Tandjong Perak bij Soerabaja.
{{NI}} Gebouwd ter vervanging van de [[Hoofdinspecteur Zeeman (1909)]]. Behalve als bebakeningvaartuig deed de Poolster ook dienst als bergingsvaartuig.<br>Het werkschip werd op 24 oktober 1939 in dienst gesteld bij de Koninklijke Marine als vliegbootmoederschip te Soerabaja.<br>
In de nacht van 1 op 2 maart 1942 te Tandjong Priok tot zinken gebracht door een vernielingsploeg.
{{||$:/_ship_template}}
* <<slider "Ondersteuniningsschip Poolster ca. 1980" Schepen203>>
!! Porsche
Het is niet algemeen bekend maar <<popup "Ferdinand Porsche" "Ferdinand Porsche">> (1875 – 1951) heeft aan het begin van zijn carrière elektrische auto's en [[hybride auto's|Hybride auto's]] ontwikkeld.<br>
Porsche was werkzaam bij de Weense firma Jacob Lohner, een rijtuigbouwer. Het eerste elektrische rijtuig dat Lohner (mee) ontwikkelde - met voorwielaandrijving en achterwielbesturing - bleek geen succes.
!! Elektrische auto's
!!! Egger-Lohner C.2 Phaeton
Porsche ontwikkelde in 1898 een nieuw model, de <<popup "Egger-Lohner C.2 Phaeton" "Egger-Lohner C2">>, met voorwielbesturing en achterwielaandrijving.<br>
De compacte <<popup "'octagon' elektrische motor" "Octagon_motor">> met een gewicht van 130 kg was met schokdempers opgehangen en leverde 3 - 5 pk bij 350 omw/min. Hiermee kon een snelheid van 35 km/u gehaald worden. M.b.v. de 500 kg 'Tudor' accu's kon dan maximaal 80 km afgelegd worden.<br>
Remmem ging zowel mechanisch als elektrisch.
!!! Lohner-Porsche
Hierna ontwierp Porsche de <<popup "Lohner-Porsche (Chaise/Voiturette)" "Lohner-Porsche1">> die voorzien was van voorwielaandrijving (met de door Porche ontwikkelde en in 1896 gepatenteerde naafmotoren).<br>
Deze auto werd in 1900 op de wereldtentoonstelling in Parijs gepresenteerd. De met een 410 kg zware loodaccu voorziene auto had een topsnelheid van 50 km/u en een actieradius van 50 km. De auto was een sensatie in heel Europa.
!!!Lohner-Porsche 'special'
Als eerste order na de wereldtentoonstelling bestelde E.W. Hart, een rijtuigbouwer uit Luton Engeland, een raceauto gebaseerd op de Lohner-Porsche, maar dan met 4-wielaandrijving en geschikt voor 4 personen.<br>
De auto (een 'special' of beter gezegd een prototype) was een monster met de bijnaam 'La Toujours Contente', als verwijzing naar de wereldsnelheidsrecordhouder, de elektrische <<popup "'La Jamais Contente'" "La Jamais Contente">> van Camille Jenatzy.<br>
De auto <<popup "'La Toujours Contente'" "Lohner-Porsche02A">> - de eerste 4-wiel aangedreven auto ter wereld - was in december 1900 te zien op de Autotentoonstelling van Parijs en werd daarna door Porsche persoonlijk afgeleverd in Luton.
{{||$:/_ship_template}}
* <<slider "Duikboot Potvis 1967" Schepen188>>
* <<slider "V.l.n.r. Cornelis Drebbel, Zeehond en Potvis 1971" Schepen366>>
De 2 duikboten uit de Potvis-klasse (= verbeterde Dolfijn-klasse: [[Potvis (1965)]] & [[Tonijn (1966)]]) waren z.g. [[driecilinder duikboten|Driecilinder duikboten]] evenals de 2 duikboten uit de Dolfijn-klasse.
Het ontwerp week nauwelijks af van dat van de Dolfijnklasse en na de update van de twee boten uit Dolfijnklasse ([[Dolfijn (1960)]] & [[Zeehond (1961)]]) in 1965-67 waren de vier boten uit beide klassen nagenoeg identiek.
<<imageh 1919_De_laatste_elektrische_taxi_in_Amsterdam_Jo_Spier.jpg 400>>
//De laatste elektrische taxi in Amsterdam. Jo Spier, 1919.<br>
Merkwaardig. Volgens de ATAX-archieven maakte half februari 1926 de elektrische ATAX taxi zijn laatste rit.//
{{||$:/_ship_template}}
* <<slider "Model van een ramtorenschip 1867" Schepen124>>
* <<slider "Opengewerkt model van een geschutskoepel 1868" Schepen125>>
* <<slider "Ramtorenschip Prins Hendrik der Nederlanden 1897" Schepen378>>
In Engeland gebouwd als grotere versie van de [[Stier (1868)]] (bij dezelfde werf - Laird, Birkenhead, UK - van stapel gelopen).<br>{{NI}}
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Prins van Oranje ca. 1935" Schepen145>>
{{NI}}<br>In 1942 door de Japanners tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Veerboot 'Prins Willem I ca. 1938" Schepen483>>
* <<slider "Veerboot 'Prins Willem I ca. 1946" Schepen482>>
De Prins Willem I werd op 15 augustus 1941 gelicht en in 1942 naar Vlissingen gesleept voor herstel. Tijdens een geallieerde luchtaanval op 31 mei 1943 werd het schip getroffen en brak het doormidden. Op 19 juni van dat jaar werd het wrak met drijvende bokken op de wal gezet waarna het schip geheel hersteld werd. Dit duurde echter tot 26 augustus 1946 toen de veerboot weer te water werd gelaten. Twee maanden later werd het schip weer als veerboot bij de Provinciale Stoombootdiensten in de vaart gebracht. Op 23 februari 1972 werd het schip verkocht en in 1974 gesloopt.
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Pro Patria 1923" Schepen249>>
{{MES}}<br>Deze mijnenlegger heeft bij het uitbreken van de vijandelijkheden met Japan verscheidene mijnversperringen in de Indische wateren gelegd en deed laatstelijk als torpedowerkschip dienst. Na door Japanse vliegtuigen te zijn bestookt, werd het schip op 15 februari 1942 op de Moesirivier door de bemanning tot zinken gebracht.
|borderless|k
|[img[Images/stoommachine_artikel.jpg]]<br>//Artikel over het stoomrijtuig van Stratingh door ir. W. Kooijmans, tekening N. Scholten//|^//Heden 22 maart in den vroegen morgen is de eerste voorlopige proefvaart genomen met een door de Heeren Stratingh en Becker ondernomen en vervaardigd stoomrijtuig, hetwelk eenen tocht door de stad over hellende en dalende straten en over bogen heeft afgelegd, welke tocht met zulk eenen aanvankelijk goeden uitslag is bekroond geworden, dat men zich vleit, dat, bij verder afwerking en voleindiging van dit werktuig, zoodanig rijtuig niet alleen bruikbaar zal zijn over nieuwe steen- en rotswegen, maar ook zelfs den stoot er meer oneffene keisteenwegen zal kunnen verduren[…]//|
!! Puur elektrische auto's
<<tabs "
[[Historie elektrische auto's]]
[[ATAX]]
[[Stadsreiniging]]
[[Porsche]]
[[Foto's elektrische auto's]]
" "
[[Info elektrische auto's]]
" "" "
">>
<<tabs ""
"Info " "" "Elektrische auto's1"
"ATAX " "" "ATAX1"
"Stadsreiniging " "" "Stadsreiniging3B"
"Porsche " "" "Porsche"
"Foto's elektrische auto's " "" "Foto's elektrische auto's"
>>
{{||$:/_ship_template}}
* <<slider "Escorteschip Queen Wilhelmina 1948" Schepen171>>
Dit patrouilleschip (US patrol craft PC468) was nooit besteld door en gebouwd voor de marine maar een persoonlijk geschenk van President Roosevelt aan Nederland. De Amerikaanse president had zelf de naam Queen Wilhelmina voorgesteld en deze werd door de marine overgenomen waardoor het schip ook qua naam een uitzondering vormde.<br>
Tijdens WWII kreeg de Queen Wilhelmina geen officiële classificatie en werd gebruikt als escortevaatuig. In 1946 werd de Queen Wilhelmina geclassificeerd als patrouilleboot.
Royal Air Force (United Kingdom)
De toenmalige regering besloot om vier ramtorenschepen te laten bouwen. Drie ervan op buitenlandse werven t.w. de [[Schorpioen (1868)]] in Toulon (Frankrijk), de [[Buffel (1868)]] in Govan upon Clyde/Glasgow (Schotland) en de [[Stier (1868)]] in Birkenhead/Liverpool (Engeland). In 1867 werd in Amsterdam op 's lands Rijkswerf de [[Guinea (1870)]] op stapel gezet (het schip was bijna identiek aan 'de Buffel).<br>
De vier ramtorenschepen Buffel, Stier, Guinea en Schorpioen werden later als pantserschepen geclassificeerd, maar waren eigenlijk ramschepen met twee 23cm kanonnen.
!!! Ramtorenschip
Een schip voorzien van een verstevigde steven en kanonnen in draaibare geschuttorens.
<<w>>
!! Fokker C.VIIIw
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
| G-1| 20-06-1930 | 30-05-1940 |18-11-1930 t/m 08-01-1931 tijdelijk civiele registratie PH-AFQ; in Engeland gesloopt|
| G-2| 26-08-1930 | 30-05-1940 |In Engeland gesloopt|
| G-3| 10-1930 | 30-05-1940 |In Engeland gesloopt|
| G-4| 03-10-1930 | 14-05-1940 |Op Westeinderplas verongelukt|
| G-5| 13-2-1931 | 30-05-1940 |In Engeland gesloopt|
| G-6| 03-10-1930 | 30-05-1940 |In Engeland gesloopt|
| G-7| 07-1934 | 12-05-1940 |In brand geschoten op MVK De Mok|
| G-8| 07-1934 | 12-05-1940 |Op het strand bij Scheveningen vernield|
| G-9| 07-1934 | 12-05-1940 |In brand geschoten op MVK De Mok|
!! Fokker C.VIIw boordvliegtuig Nederlands-Indië
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
| V-1| 08-10-1928 | 01-12-1938 |Afgeschreven|
| V-2| 01-01-1929 | 01-03-1942 |Vernietigd door eigen personeel|
| V-3| 01-01-1929 | 01-03-1942 |Vernietigd door eigen personeel|
| V-4| 01-01-1929 | 01-03-1942 |Vernietigd door eigen personeel|
| V-5| 01-01-1929 | 01-03-1942 |Vernietigd door eigen personeel|
| V-6| 01-01-1929 | 01-01-1939 |Afgeschreven|
| V-7| 01-01-1929 | 01-03-1942 |Vernietigd door eigen personeel|
| V-8| 01-01-1929 | 01-03-1942 |Vernietigd door eigen personeel|
| V-9| 01-01-1929 | 15-05-1941 |Verongelukt bij MVK Morokrembangan|
| V-10| 01-01-1929 | 01-12-1939 |Afgeschreven|
| V-11| 01-01-1929 | 01-12-1939 |Afgeschreven|
| V-12| 01-01-1929 | 01-01-1939 |Afgeschreven|
!! Fokker C.VIIw lesvliegtuig Nederland
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
| L-1| 01-10-1930 | 23-08-1938 ||
| L-2| 01-10-1930 | 10-05-1940 |Vernield op MVK De Mok|
| L-3| 01-10-1930 | 10-05-1940 ||
| L-4| 01-10-1930 | 10-05-1940 |Vernield op MVK De Mok|
| L-5| 01-10-1930 | 10-05-1940 |Vernield op MVK De Mok|
| L-6| 01-10-1930 | 08-07-1938 |In dienst okt. 1930;|
| L-7| 01-20-1930 | 10-05-1940 |In dienst okt. 1930;|
| L-8| 01-10-1930 | 10-05-1940 |In dienst okt. 1930;|
| L-9| 01-10-1930 | 10-05-1940 |In dienst okt. 1930;|
| L-10| 01-01-1931 | 08-07-1938 |Verongelukt bij Schellingwoude|
| L-11| 01-01-1931 | 10-05-1940 |Afgeschreven|
| L-12| 01-01-1931 | 25-04-1939 |Verongelukt bij Schellingwoude|
| L-13| 26-04-1932 | 10-05-1940 |Vernietigd op MVK De Mok.|
| L-14| 26-04-1932 | 10-05-1940 |Vernietigd op MVK De Mok.|
| L-15| 26-04-1932 | 12-05-1938 |Verongelukt Marsdiep|
| L-16| 26-04-1932 | 10-05-1940 |Afgeschreven|
| L-17| 17-08-1932 | 10-05-1940 ||
| L-18| 25-08-1932 | 10-05-1940 |Vernietigd op MVK De Mok.|
!! Fokker C.Vw en C.VC bij de MLD
|Afgeleverd als drijvervliegtuig, daarna ombouw tot C-VC|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|Z-1 | medio 1925 | 1938 |Medio 1938 afgeschreven|
|Z-2 | medio 1925 | 1938 |Medio 1934 afgeschreven|
|Z-3 | medio 1925 | 1934 |Medio 1934 afgeschreven|
|Z-4 | medio 1925 | 1938 |Medio 1938 afgeschreven|
|Z-5 | medio 1925 | 08-1939 |Augustus 1939 afgeschreven|
|Z-6 | medio 1925 | 1938 |Medio 1938 afgeschreven|
|Afgeleverd als Fokker C.VC |<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|Z-7 | medio 1926 | 1934 |Medio 1934 afgeschreven|
|Z-8 | medio 1926 | 1934 |Medio 1934 afgeschreven|
|Z-9 | medio 1926 | 1930 |Medio 1930 afgeschreven|
|Z-10 | medio 1926 | 1938 | |
|Z-11 | medio 1926 | 1930 | |
|Z-12 | medio1926 | 1930 | |
!! Fokker C.VE bij de MLD
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|Z-13 | 1926 |1935 |Afgeschreven|h
|Z-14 | 1926 |1930 |Afgeschreven|
|Z-15 | 1926 |1938 |Afgeschreven|
|Z-16 | 1926 |1938 |Afgeschreven|
|Z-17 | 1926 |1930 |Afgeschreven|
|Z-18 | 1926 |24-02-1931 |Verongelukt Marine Vliegkamp De Kooy|
|Z-19 | 1927 |27-07-1932 |Verongelukt bij Vaals|
|Z-20 | 1927 |1938 |Afgeschreven.|
|Z-21 | 1927 |1930 |Afgeschreven|
|Z-22 | 1927 |1930 |Afgeschreven.|
|Z-23 | 1927 |1938 |Afgeschreven.|
|Z-24 | 1927 |1938 |Afgeschreven.|
!! Fokker C.XIVw
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|F-1 | 08-06-1939 | 11-05-1940 |Lesvliegtuig Nederland. Vernield bij bombardement van MVK De Mok|
|F-2 | 05-05-1939 | 11-05-1940 |Zeeverkenner. Vernield bij bombardement MVK De Mok|
|F-3 | 05-05-1939 | 03-1941 |Zeeverkenner. Afgeschreven (Engeland)|
|F-4 | 11-05-1939 | 12-05-1940 |Zeeverkenner. Vernield bij bombardement MVK De Mok|
|F-5 | 26-06-1939 | 03-1942 |Zeeverkenner. In Maart 1942 vernield MVK Morokrembangan|
|F-6 | 28-08-1939 | 03-1942 |Zeeverkenner. In Maart 1942 vernield MVK Morokrembangan|
|F-7 | 28-08-1939 | 11-05-1940 |Zeeverkenner. Vernield MVK De Mok|
|F-8 | 14-09-1939 | 11-05-1940 |Lesvliegtuig Nederland. Vernield bij bombardement MVK De Mok|
|F-9 | 31-10-1939 | 12-05-1940 |Lesvliegtuig Nederland. Vernield bij bombardement MVK De Mok|
|F-10 | 01-11-1939 | 03-1942 |Lesvlieguig Nederland. Vernield bij bombardement van MVK Morokrembangan|
|F-11 | 17-10-1939 | 03-1942 |Lesvlieguig Nederland. Vernield bij bombardement MVK Morokrembangan|
|F-12 | 17-10-1939 | 03-1942 |Lesvliegtuig Nederland. Vernield bij bombardement van MVK Morokrembangan|
|F-13 | 01-11-1939 | 03-1942 |Zeeverkenner. Vernield MVK Morokrembangan|
|F-14 | 01-11-1939 | 12-05-1940 |Zeeverkenner. Vernield bij bombardement MVK De Mok|
|F-15 | 16-11-1939 | 03-1942 |Lesvliegtuig Nederland. Vernield MVK Morokrembangan|
|F-16 | 20-11-1939 | 12-05-1940 |Zeeverkenner. Vernield bij bombardement MVK De Mok|
|F-17 | 29-11-1939 | 12-05-1940 |Zeeverkenner. Vernield bij bombardement MVK De Mok|
|F-18 | 06-12-1939 | 11-05-1940 |Zeeverkenner. Vernield bij bombardement MVK De Mok|
|F-19 | 28-08-1939 | 12-05-1940 |Zeeverkenner. Vernield bij bombardement MVK De Mok|
|F-20 | 28-08-1939 | 13-05-1940 |Zeeverkenner. Vernield bij bombardement MVK De Mok|
|F-21 | 28-08-1939 | 12-05-1940 |Zeeverkenner. Vernield bij bombardement MVK Veere|
|F-22 | 28-08-1939 | 03-1942 |Zeeverkenner. Vernield MVK Morokrembangan|
|F-23 | 30-08-1939 | 03-1942 |Zeeverkenner. Vernield MVK Morokrembangan|
|F-24 | 14-09-1939 | 12-05-1940 |Zeeverkenner. Vernield bij bombardement MVK Veere|
!! Fokker C.XIw
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|W-1 | 20-07-1935 | 02-03-1942 |Tijdelijk civiele registratie PH-ALC. Vernietigd op het Meer van Lengkong|
|W-2 | medio 1937 | 01-1939 |Afgeschreven MVK Morokrembangan|
|W-3 | 12-02-1938 | 12-05-1940 |Alleen in Nederland; vernield bij bombardement van MVK De Mok|
|W-4 | 02-06-1937 | 03-1942 |Vernietigd MVK Morokrembangan|
|W-5 | 02-06-1937 | 05-1939 |Afgeschreven MVK Morokrembangan|
|W-6 | 03-06-1937 | 07-08-1940 |Verongelukt bij MVK Morokrembangan|
|W-7 | 03-06-1937 | 26-09-1939 |Verongelukt bij Banka|
|W-8 | 23-08-1937 | 02-03-1942 |Vernietigd op het Meer van Lengkong|
|W-9 | 1937 |13-04-1940 |Alleen in Nederland; verongelukt voor Kamperduin|
|W-10 | medio 1937 | 02-03-1942 |Vernietigd MVK Morokrembangan|
|W-11 | medio 1937 | 02-03-1942 |Vernietigd op het Meer van Lengkong|
|W-12 | 01-12-1937 | 18-01-1942 |Neergeschoten bij Tjepoe|
|W-13 | 03-12-1937 | 17-06-1941 |Ongeval|
|W-14 | 18-01-1938 | 02-03-1942 |Mei 1940 uitgeweken naar Engeland en vandaar doorgezonden naar Nederlands-Indië. Vernietigd op het Meer van Lengkong|
|W-15 | 18-01-1938 | 02-03-1942 |Vernietigd op het Meer van Lengkong|
!!Fokker S.IX
|Registratie |Datum in dienst |Datum uit dienst |h
|S-20 | 21-10-1938 | 10-05-1940 |
|S-21 | 1-06-1938 | 10-05-1940 |
|S-22 | 1-06-1938 | 10-05-1940 |
|S-23 | 1-06-1938 | 10-05-1940 |
|S-24 | 20-06-1938 | 10-05-1940 |
|S-25 | 20-06-1938 | 10-05-1940 |
|S-26 | 20-06-1938 | 10-05-1940 |
|S-27 | 27-09-1938 | 10-05-1940 |
|S-28 | 27-09-1938 | 10-05-1940 |
|S-29 | 27-09-1938 | 10-05-1940 |
|S-30 | 27-09-1938 | 10-05-1940 |
|S-31 | 27-09-1938 | 10-05-1940 |
|S-32 | 21-10-1938 | 10-05-1940 |
|S-33 | 21-10-1938 | 10-05-1940 |
|S-34 | 21-10-1938 | 10-05-1940 |
!! Fokker T.IV
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|T-1 | 06-1927 | 16-10-1937 |Verongelukt bij Banda|
|T-2 | 06-1928 | 01-1939 |Afgeschreven MVK Morokrembangan|
|T-3 | 06-1928 | 06-1940 |Afgeschreven MVK Morokrembangan|
|T-4 | 06-1929 | 06-1940 |Afgeschreven MVK Morokrembangan|
|T-5 | 06-1929 | 06-1940 |Afgeschreven MVK Morokrembangan|
|T-6 | 06-1929 | 06-1940 |Afgeschreven MVK Morokrembangan|
|T-7 | 09-1929 | 06-1940 |Afgeschreven MVK Morokrembangan|
|T-8 | 12-08-1930 | 09-1939 |Afgeschreven MVK Morokrembangan|
|T-9 | 07-1930 | 03-1939 |Afgeschreven MVK Morokrembangan|
|T-10 | 07-1930 | 06-1940 |Afgeschreven MVK Morokrembangan|
|T-11 | 12-08-1930 | 05-1939 |Afgeschreven MVK Morokrembangan|
|T-12 | 06-1930 | 06-1940 |Afgeschreven MVK Morokrembangan|
!! Fokker T.IVa
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|T-13 | 27-04-1936 | 12-10-1937 |Verongelukt bij Awarawar|
|T-14 | 06-1936 | 26-05-1941 |Verongelukt bij Soerabaja|
|T-15 | 06-1936 | 02-03-1942 |Vernield op Meer van Lengkong|
|T-16 | 06-1936 | 02-03-1942 |Vernield op Meer van Lengkong|
|T-17 | 06-1936 | 02-03-1942 |Vernield op Meer van Lengkong|
|T-18 | 06-1936 | 02-03-1942 |Vernield op Meer van Lengkong|
|T-19 | 06-1937 | 02-03-1942 |Vernield op Meer van Lengkong|
|T-20 | 06-1937 | 03-02-1942 |Verloren gegaan bij bombardement van MVK Morokrembangan|
|T-21 | 06-1937 | 02-03-1942 |Vernield op Meer van Lengkong|
|T-22 | 06-1937 | 03-02-1942 |Verloren gegaan bij bombardement van MVK Morokrembangan|
|T-23 | 1938 | 02-03-1942 |Eerst proefnemingen in Nederland; eind 1938 naar Nederlands-Indië. Vernield op Meer van Lengkong|
|T-24 | 06-1938 | 02-03-1942 |Eerst proefnemingen in Nederland; medio 1938 naar Nederlands-Indië. Vernield op Meer van Lengkong|
!! Fokker T-VIII W/G-1
|Registratie |RAF registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|R-1 |AV958 | 25-04-1939 | 28-11-1940 |Gecrasht onderweg naar (nieuwe) thuisbasis Felixstowe|
|R-2 |- | 05-05-1939 | 10-05-1940 |Later naar RAF. Gecrasht te Suffolk, onderweg naar (nieuwe) thuisbasis Felixstowe|
|R-3 |AV959 | 16-05-1939 | |Vernietigd bij Rozenburg|
|R-4 |- | 28-07-1939 | 10-05-1940 |September 1940 afgeschreven Engeland|
|R-5 |- | 28-07-1939 | 13-09-1939 |Verbrand voor Scheveningen|
!! Fokker T-VIII W/G-2.
|Registratie |RAF registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|R-6 |AV960 | 10-05-1940 | 28-11-1940 |Afgeschreven Engeland|
|R-7 |AV961 | 10-05-1940 | 28-11-1940 |Afgeschreven Engeland|
|R-8 |AV962 | 12-05-1940 | 09-1940 |Afgeschreven Engeland|
|R-9 |AV963 | 10-05-1940 | 26-08-1940 |Verongelukt, Ierse Zee|
|R-10 |AV964 | 12-05-1940 | 26-07-1940 |Verongelukt, Ierse Zee|
|R-11 |AV965 | 05-1940 | 28-11-1940 |Afgeschreven Engeland|
|Geïnterneerde Friedrichshafen FF-33J/S|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|V-1 | 21-08-1917 | 01-01-1925 |''FF-33J'' geïnterneerd op 06-08-1917 te Ameland.<br>Arriveerde 26-11-1918 in Nederlands-Indië<br>Medio 1925 afgeschreven|
|V-2 | 01-10-1917 | 03-10-1919 |''FF-33S'' (trainer) geïnterneerd op 07-08-1917 bij Texel en in dienst oktober 1917<br>Afgeschreven na een noodlanding|
|V-3 | ? | 26-03-1918 |''FF-33L'' geïnterneerd na noodlanding bij Wielingen. Afgeschreven|
|||||
|||||
|Geleverde Friedrichshafen FF-33L|<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|V-15 | 14-04-1919 | 21-09-1922 ||
|V-16 | 01-04-1919 | 11-09-1919 |Neergestort bij Schellingwoude|
|V-17 | 4-1919 | 1925 |Uit dienst medio 1925|
|V-18 | 17-04-1919 | 17-10-1919 |Neergestort in Oosterschelde|
|V-19 | 01-04-1919 | 1925 |Uit dienst medio 1925|
|V-20 | 01-04-1919 | 12-06-1919 |Na noodlanding gezonken (Felixstowe)|
|V-21 | 01-04-1919 | 1925 |Uit dienst medio 1925|
|V-22 | 01-04-1919 | 1925 |Uit dienst medio 1925|
|V-23 | 23-04-1919 | 01-08-1919 |Na noodlanding gezonken bij Katwijk|
|V-24 | 01-05-1919 | 02-08-1919 |Verongelukt op het Buiten IJ|
|V-25 | 01-09-1919 | 1925 |Uit dienst medio 1925|
|V-26 | 01-09-1919 | 1925 |Uit dienst medio 1925|
|V-27 | 01-05-1919 | 1925 |Uit dienst medio 1925|
|V-28 | 01-06-1919 | 1925 |Uit dienst medio 1925|
|V-29 | 01-06-1919 | 1925 |Uit dienst medio 1925|
|V-30 | 01-07-1919 | 1925 |Uit dienst medio 1925|
|V-31 | 01-07-1919 | 1925 |Uit dienst medio 1925|
|V-32 | 01-07-1919 | 1925 |Uit dienst medio 1925|
!! Koolhoven F.K. 51
Totaal 17 stuks; 2x hetzelfde registratienummer gebruikt!
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|E-1 | medio 1936 | 10-05-1938 |Verongelukt bij Eelde|
|E-1 (II) | 5-1939 | 10-05-1940 |Vervanger voor de neergestorte toestel. Vernield bij bombardement MVK De Kooy|
|E-2 | medio 1936 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-3 | medio 1936 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-4 | medio 1936 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-5 | medio 1936 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-6 | medio 1936 | 11-05-1938 |Verongelukt bij Breezand|
|E-6 (II) | 5-1939 | 10-05-1940 |Vervanger voor de neergestorte toestel. Vernield bij bombardement MVK De Kooy|
|E-7 | medio 1937 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-8 | medio 1937 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-9 | medio 1937 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-10 | medio 1937 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-11 | medio 1937 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-12 | medio 1937 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-13 | medio 1937 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-14 | medio 1937 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
|E-15 | medio 1937 | 10-05-1940 |Vernield bij bombardement MVK De Kooy|
!! Martin Mariner PBM-5
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|P-300, 16-300| 22-12-1955 | 15-1-1960 |Afgevoerd ~MarineVliegKamp Biak|
|P-301, 16-301| 22-12-1955 | 15-1-1960 |Afgevoerd ~MarineVliegKamp Biak|
|P-302, 16-302| 21-12-1955 | 15-12-1959 |In zee, Papiti Baai|
|P-303, 16-303| 29-11-1955 | 20-8-1958 |Ongeval, Abadan|
|P-304, 16-304| 31-7-1956 | 15-1-1960 |Afgevoerd ~MarineVliegKamp Biak|
|P-305, 16-305| 5-12-1956 | 22-11-1957 |Ongeval, Haringvliet|
|P-306, 16-306| 17-12-1956 | 10-6-1959 |Ongeval, Goa|
|P-307, 16-307| 8-10-1956 | 11-10-1957 |Ongeval, ~MarineVliegKamp Valkenburg|
|P-308, 16-308| 7-3-1957 | 15-1-1960 |Afgevoerd Nederland|
|P-309, 16-309| 24-4-1957 | 15-1-1960 |Afgevoerd ~MarineVliegKamp Biak|
|P-310, 16-310| 8-4-1957 | 15-1-1960 |Afgevoerd ~MarineVliegKamp Biak|
|P-311, 16-311| 12-6-1957 | 15-1-1960 |Afgevoerd ~MarineVliegKamp Biak|
|P-312, 16-312| 14-5-1957 | 12-8-1957 |Ongeval Merauke|
|P-313, 16-313| 12-7-1957 | 15-1-1960 |Afgevoerd ~MarineVliegKamp Biak|
|P-314, 16-314| 25-7-1957 | 15-1-1960 |Afgevoerd ~MarineVliegKamp Biak|
|P-315, 16-315| 17-9-1957 | 28-6-1958 |Gesloopt Nederland|
|P-316, 16-316| 17-9-1957 | 15-1-1960 |Afgevoerd ~MarineVliegKamp Biak|
!! Spyker V.2
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|C-11 | 06-1918 | 06-1924 |Uit dienst|
|C-12 | 11-1918 | 06-1924 |Afgeschreven|
|C-13 | 11-1918 | 06-1924 |Afgeschreven|
|C-14 | 11-1918 | 06-1924 |Uit dienst|
|C-15 | 12-1918 | 01-11-1919 |Afgeschreven|
|C-16 | 12-1918 | 06-1924 |Uit dienst|
|C-17 | 12-1918 | 06-1924 |Uit dienst|
|C-18 | 12-1918 | 24-04-1919 |Ongeval MVK De Kooy|
|C-19 | 01-1919 | 18-03-1919 |Ongeval MVK De Kooy (botsing met A-2)|
|C-20 | 01-1919 | 13-04-1922 |Ongeval MVK De Kooy|
|C-21 | 01-1919 | 06-1924 |Uit dienst|
|C-22 | 01-1919 | 06-1924 |Uit dienst|
|C-23 | 03-1919 | 06-1924 |Uit dienst|
|C-24 | 03-1919 | 07-05-1918 |Ongeval MVK De Kooy|
|C-25 | 03-1919 | 06-1924 |Uit dienst|
|C-26 | 03-1919 | 06-1924 |Uit dienst|
|C-27 | 03-1919 | 06-1924 |Uit dienst|
|C-28 | 03-1919 | 25-04-1919 |Ongeval MVK De Kooy|
|C-29 | 12-1919 | 19-02-1920 |Ongeval MVK De Kooy|
|C-30 | 12-1919 | 11-07-1922 |Ongeval MVK De Kooy|
!! Supermarine Sea Otter Mk.2
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
| 12-1 (L-1)| 7-3-1951 | 6-7-1953 |ex particulier|
| 12-2 (L-2)| 4-4-1951 | 19-9-1953 |ex particulier|
| 12-3 (L-3)| 8-8-1952 | 27-10-1953 |ex particulier|
| 18-4, 12-4 (L-4)| 17-11-1949 | 20-2-1951 |ex-RAF|
| 18-5, 12-5 (L-5)| 11-1-1950 | 26-1-1953 |ex-RAF|
| 18-6, 12-6 (L-6)| 12-5-1950 | 24-4-1952 |ex-RAF|
| 18-7, 12-7 (L-7)| 30-6-1950 | 16-1-1952 |ex-RAF|
| 18-8, 12-8 (L-8)| 14-12-1950 | 5-5-1953 |ex-RAF|
!! Van Berkel W-A
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|W1-W20 Nederlands-Indië|<|<|<|h
|W-1 | 07-09-1919 | 1924 | |
|W-2 | 10-1919 | 16-08-1928 |Afgeschreven|
|W-3 | 11-1919 | 1924 |Medio 1924 afgeschreven|
|W-4 | 11-1919 | 1932 |Medio 1932 afgeschreven|
|W-5 | 11-1919 | 1929 |Medio 1929 afgeschreven|
|W-6 | 11-1919 | 1929 |Medio 1929 afgeschreven|
|W-7 | 1920 | 1929 |Medio 1929 uit dienst|
|W-8 | 1920 | 1929 |Medio 1929 uit dienst|
|W-9 | 1920 | 1932 |Medio 1932 afgeschreven|
|W-10 | 1920 | 1924 |Medio 1924 afgeschreven|
|W-11 | 1920 | 1922 |Medio 1922 afgeschreven|
|W-12 | 1920 | 1932 |Medio 1932 afgeschreven|
|W-12A | 1920 | 1929 |Medio 1929 afgeschreven|
|W-14 | 1920 | 1929 |Medio 1929 uit dienst|
|W-15 | 1921 | 1924 |Medio 1921 uit dienst|
|W-16 | 1921 | 2-6-1927 |Neergestort Java Zee|
|W-17 | 1921 | 1932 |Medio 1932 uit dienst|
|W-18 | 1921 | 1932 |Medio 1932 uit dienst|
|W-19 | 1921 | 1922 |Medio 1922 afgeschreven|
|W-20 | 1921 | 1929 |Medio 1929 uit dienst|
|W21, W51-W65 Nederland|<|<|<|h
|W-21 | 1923 | medio 1929 |Samengesteld uit de W-11 en W-19. Operationeel gebruikt in Nederland|
|W-51 | 12-1919 | 1933 | |
|W-52 | 11-12-1919 | 1933 | |
|W-53 | 16-12-1919 | 1933 | |
|W-54 | 18-12-1919 | 02-09-1930 | |
|W-55 | 29-12-1919 | 1933 | |
|W-56 | 1920 | 1933 | |
|W-57 | 1920 | 28-11-1924 | |
|W-58 | 1920 | 1933 | |
|W-59 | 1920 | 1933 | |
|W-60 | 1920 | 1933 | |
|W-61 | 1920 | 1933 | |
|W-62 | 1920 | 1933 | |
|W-63 | 1920 | 1933 | |
|W-64 | 1920 | 1933 | |
|W-65 | 1920 | 1933 | |
|W66-W70 Nederland; samengesteld uit onderdelen|<|<|<|h
|W-66 | 1924 | 1933 | |
|W-67 | 1924 | 1933 | |
|W-68 | 1924 | | |
|W-69 | 1924 | 1933 | |
|W-70 | 1924 | 1933 | |
!! Van Berkel W-B
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen|h
|E-1 | 1921 | 1925 | |
|E-2 | 1921 | 1925 | |
|E-3 | 1921 | 1925 | |
|E-4 | 1922 | 1925 | |
|E-5 | 1922 | 1933 | |
|E-6 | 1922 | 1933 | |
!! Registratiegegevens
[[ipms|https://www.ipms.nl/artikelen/nedmil-luchtvaart/vliegtuigen-c/vliegtuigen-c-consol-catalina/1105-consolidated-catalina-6]] & [[ipms|https://www.ipms.nl/artikelen/nedmil-luchtvaart/vliegtuigen-c/vliegtuigen-c-consol-catalina/1104-consolidated-catalina-4.html]]
* <<slider "38 PBY-5 Catalina's (Y-38 t/m Y-73)" "38 PBY-5 vliegboten Y-38 t/m Y-73">>
* <<slider "12 PBY-5A Catalina's (amfibie) (Y-74 t/m Y-85)" "12 PBY-5A amfibie Y-74 t/m Y-85">>
* <<slider "6 PB2B-1 Catalina's mk IV.B in bruikleen (Y-88 t/m Y-93)" "6 Boeing Canada PB2B-1 Catalina mk IV.B in bruikleen">>
* <<slider "6 PB2B-1 Catalina's mk IV.B gekocht (Y-88 t/m Y-93)" "6 Boeing Canada PB2B-1 Catalina mk IV.B gekocht">>
* <<slider "2 PBY-5 Catalina's mk.1 (P-200, P-204)" "2 Consolidated PBY-5 Catalina mk.1">>
* <<slider "5 PBY-5 Catalina's mk. IVA (P-201, P-202, P-203, P-205, P-206)" "5 Consolidated PBY-5 Catalina mk. IVA">>
* <<slider "4 PB2B-2 Catalina's mk. VI (P-207 t/m P-210)" "4 Boeing Canada PB2B-2 Catalina mk. VI">>
* <<slider "12 PBY-5A Catalina's (amfibie) (P-211 t/ P-216, P-220 t/m P-225)" "12 Consolidated PBY-5A Catalina (amfibie)">>
!! Fairey IIID
Vier toestellen van dit type zijn in 1925 aangeschaft en begin mei naar De Mok overgevlogen. In 1926 werden ze overgebracht naar Nederlands Oost-Indië om daar dienst te doen als boordvliegtuig van de kruisers.
De toestellen, opgebouwd uit hout en linnen bleken in de tropen echter geen succes en werden al vrij snel buiten gebruik gesteld.
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
| F1| 04-05-1925 | 02-01-1930|Afgeschreven na ongeval |
| F2| 06-05-1925 | 29-10-1930|Afgeschreven na ongeval |
| F3| 04-05-1925 | 1930|
| F4| 04-05-1925 | 1930|
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|MA-1 |28-07-1914 |28-05-1915 |Naar LVA als LA9|
|M-1, M.A.1, A-1 |30-07-1915 |14-03-1919 |Afgeschreven na ongeval op MVK De Kooy|
|M-2, M.A.2, A-2 |16-10-1915 |31-03-1919 |Afgeschreven|
|M-3, M.A.3, A-3 |medio 1916 |15-11-1917 |Afgeschreven na noodlanding Soesterberg|
|A-4 |28-11-1917 |17-02-1922 |Afgeschreven|
|A-5 |06-12-1917 |09-03-1920 |Afgeschreven|
|A-6 |16-12-1917 |31-03-1919 |Afgeschreven|
!! Martin S
Er werden bij Martin 6 toestellen van het type S besteld. Tijdens het invliegen verongelukt er een (nalevering onbekend). Volgens MLD waren er 4 in dienst. Waar is de 5^^e^^ gebeleven?
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|J-1 |21-08-1917 |5-11-1919 |Afgeschreven|
|J-2 |21-08-1917 |1920 |Medio 1920 uit dienst|
|J-3 |21-08-1917 |14-01-1919 |Afgeschreven, na ongeval|
|J-4 |21-08-1917 |22-10-1919 |Afgeschreven. na ongeval in December 1918|
|Besteld als landvliegtuig (24 st.) Hiervoor zijn later een aantal drijversets gekocht |<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|S-11 |01-10-1940 |17-02-1942 | |h
|S-12 |01-10-1940 |17-02-1942 | |
|S-13 |01-10-1940 |17-02-1942 | |
|S-14 |01-10-1940 |01-06-1942 |In juni 1942 verkocht RAAF. Werd A50- 7|
|S-15 |01-10-1940 |17-02-1942 | |
|S-16 |01-10-1940 |01-06-1942 |In juni 1942 gesloopt?|
|S-17 |01-10-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-24|
|S-18 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-27|
|S-19 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-25|
|S-20 |01-11-1940 |21-04-1941 |Verongelukt|
|S-21 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-30|
|S-22 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-17|
|S-23 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-11|
|S-24 |01-11-1940 |01-06-1942 |n juni 1942 verkocht RAAF, werd A50-15|
|S-25 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-33|
|S-26 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-21|
|S-27 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-12|
|S-28 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50- 4|
|S-29 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-22|
|S-30 |01-11-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-1 8|
|S-31 |01-12-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50- 2|
|S-32 |01-12-1940 |17-02-1942 | |
|S-33 |01-12-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-34|
|S-34 |01-12-1940 |17-02-1942 | |
|Besteld als drijvervliegtuig (24 st.) |<|<|<|h
|Registratie |Datum in dienst |Datum uit dienst |Opmerkingen |h
|S-35 |01-12-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-23|
|S-36 |01-12-1940 |17-02-1942 | |
|S-37 |01-12-1940 |01-06-1942 |In juni 1942 verkocht RAAF. Werd A50-1|
|S-38 |01-12-1940 |01-06-1942 |In juni 1942 gesloopt?|
|S-39 |01-12-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-9|
|S-40 |01-12-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-31|
|S-41 |01-12-1940 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-10|
|S-42 |01-12-1940 |17-02-1942 | |
|S-43 |01-01-1941 |01-10-1941 |Verbrand|
|S-44 |01-01-1941 |17-02-1942 | |
|S-45 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-32|
|S-46 |01-01-1941 |01-06-1942 |IIn juni 1942 verkocht RAAF, werd A50-19|
|S-47 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-5|
|S-48 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-28|
|S-49 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, A50-14|
|S-50 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-16|
|S-51 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-8|
|S-52 |01-01-1941 |17-02-1942 | |
|S-53 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-13|
|S-54 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-26|
|S-55 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-20|
|S-56 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-29|
|S-57 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-6|
|S-58 |01-01-1941 |01-06-1942 |In juni 1942 verkocht RAAF, werd A50-3|
!! Wat betekent de letter op de boeg van een schip?
Vroeger stond de naam van het schip op het schip zelf en was dat de aanduiding van het schip, b.v. [[Gelderland|Gelderland (1900)]]. Soms stond er alleen een letter op (omdat het schip nu eenmaal zo heette), b.v. mijnenveger [[A|A (1930)]].<br>
En soms ook beide, b.v. [[Jan van Amstel|Jan van Amstel (1937)]] met op het middenschip een ''A'' als z.g naamsein (later ''AM'').<br>
Later werden deze letters een letter-cijfercombinatie die ook een type-aanduiding was:
<<slider "Nederlandse registratienummers 1946-1950" "Registratienummers 1946">><br>
<<slider "Nederlandse registratienummers vanaf 1950" "Nederlandse pennantnummers">>
Op de boeg van een marineschip staat - sinds 1950 - een NAVO-naamsein, een z.g. ''pennantnummer''. Dit nummer bestaat uit een letter gevolgd door een drie- of viercijferige code. Pennantnummers vinden hun oorsprong in de Britse marine, maar worden sinds de Tweede Wereldoorlog gebruikt door <<slider "vele marines in de wereld." "Landen pennantnummmers">>
De letters van de pennantnummers zijn een type/klasseaanduiding, de cijfers zijn voor ieder schip anders.<br>
De Nederlandse marine heeft de beschikking gekregen over de nummers ''800'' tot ''899'' en ''8000'' tot ''8999'' voor schepen met de classificatie ''Y''.
<<<
* Er zijn ook schepen in de ''A9xx''-serie, b.v. [[Mercuur (1987)]] ''A900'' en [[Van Kinsbergen (1999)]] ''A902''.<br><<slider "Serie A800 t/m A999" "A800 t/m A999">>
* De vaartuigen van het Loodswezen (evenals de betonningsvaartuigen) hadden - in de periode dat deze diensten nog deel uitmaakten van de Koninklijke Marine (tot 1980) - niet alleen bewapening, maar ook pennantnummers.
<<<
Na de oorlog tot 15-10-1950 kenden de Nederlandse oorlogsschepen de volgende indeling:
|Voorvoegsel |Later gewijzigd in |soort schip|h
|H ||Hulpvaartuig|
|J |JT |Jagers|
|KL |KV |Lichte kruiser/luchtverdedigingskruiser|
|L ||Landingsvaartuig|
|LT ||Klein vaartuig|
|ML ||Mijnenlegger|
|MV ||Mijnenveger|
|N ||Kanonneerboot|
|O ||onderzeeboot|
|P ||Patrouilleschip|
|QH ||(Hulp-)vliegkampschip|
|R ||Regionaal/lokaal vaartuig|
|RP ||Regionaal patrouilleschip|
<<<
''N.B.:''
* Veel voorvoegsels kenden nog een verder onder verdeling, b.v. H: HD, HE, HF, HW, ...
* Voor uitgebreidere informatie zie [[Naamseinen van de Nederlandse oorlogsschepen sedert W0II]].
<<<
Werd in 1931 toegevoegd aan de vloot van de {{GM}}. Bij de militarisering in 1939 bevond de Reiger zich in station Amboina en kon daar blijven als moederschip voor de MLD in de Molukse wateren. Net als de [[Merel (1928)]] werd het schip in februari 1942 teruggehaald naar Java en ingedeeld bij de Bewakingdienst West-Java. Samen met de [[Sirius (1922)]] bevond de Reiger zich in de nacht van 27 op 28 februari 1942 in de Bantam-baai. Gedurende de dag werden de schepen vier keer aangevallen door Japanse bommenwerpers waarbij alleen de Sirius lichte schade opliep. Die avond werd de Reiger gevangen in een vijandelijk zoeklicht en met kanonvuur bestookt. Bij een poging hieraan te ontkomen liep de Reiger echter met vol vermogen op een kustrif.
{{||$:/_ship_template}}
* <<slider "Monitor Reinier Claeszen ca. 1900" Schepen147>>
* <<slider "Monitor Reinier Claeszen ca. 1900" Schepen259>>
|Mk. |veranderingen |datum levering |h
|I|firtst version|mid 1938|
|II|Pegasus XVIII motoren (4x 794kW)|mid 1941|
|III|verbeterde bootromp|dec. 1941|
|IV|redesign => nieuw type: Short Seaford, nooit verder dan RAF proefvluchten|begin 1945|
|V|Pratt & Whitney R-1830 Twin Wasp motoren (4x 895 kW)|begin 1944|
In 1963 omgebouwd tot duikvaartuig.
{{||$:/_ship_template}}
* <<slider "Hulpmijnenlegger Rigel 1931" Schepen244>>
Gebouwd voor de Gouvernementsmarine maar werd in 1939 omgebouwd tot mijnenlegger en gemilitariseerd waardoor het deel uitmaakte van de Koninklijke Marine.
De vaartuigen van het Loodswezen (evenals de betonningsvaartuigen) hadden in de periode dat deze diensten nog deel uitmaakten van de KM niet alleen bewapening, maar ook Pennantnummers. Ik heb gepoogd deze nummers in kaart te brengen, doch er is over deze vaartuigen relatief weinig gepubliceerd.
Vraag: Vallen de huidige loodsvaartuigen (bv in geval van oorlog o.i.d.) ook weer onder de KM? of blijven deze gewoon civiel varen.
Het Rijksloodswezen ressorteerde tot 1 januari 1980 onder het Ministerie van Defensie. Daarna werd in het kader van het streven naar eenheid van maritiem bestuur als onderdeel van het Ministerie van Infrastructuur en Milieu (voorheen Ministerie van Verkeer en Waterstaat) het Directoraat-Generaal Scheepvaart en Maritieme Zaken (DGSM) opgericht, bestaande uit het voormalige Rijksloodswezen, het Directoraat-Generaal Scheepvaart en enkele andere onderdelen van Rijkswaterstaat. In september 1988 volgde de privatisering van alle loodsdiensten. In principe zijn het dus nu gewone civiele vaartuigen, maar in theorie zouden ze wellicht gevorderd kunnen worden.
<hr>
Voor 1850 was beloodsing een zaak van lokale zeevarenden. Scheepvaart nam echter zo toe dat rond 1850 het loodswezen werd opgericht. Van rijkswege werden rijksloodsen aangesteld.<br>
De bestaande privé loodsenvereniging werden gebundeld. Waar geen loodsen waren, werden loodsposten ingesteld.<br>
Het nieuwe loodswezen stelde vaste tarieven in, stelde regels en bracht eigen vaartuigen in de vaart.<br>
De dienst werd ingedeeld bij het ministerie van marine omdat de loodsen in tijd van oorlog van het grootste belang waren en een ministerie van bv verkeer en waterstaat nog niet bestonden.<br>
De directeur generaal van het loodswezen was een schout bij nacht, de directeuren van de loodsdistricten waren een kapitein ter zee.<br>
In het kader van verwachte bezuinigingen (die uiteraard niet uitkwamen) werd het loodswezen bij defensie weggehaald op 1 januari 1980 en ingedeeld bij een nieuwe organisatie: Directoraat Generaal Scheepvaart en Maritieme Zaken van Verkeer en Waterstaat.<br>
Na verzelfstandiging in 1988 werd de dienst van het loodswezen in 1991 geheel zelfstandig.<br>
Er is een discussie over de loodsplicht en de ( te hoge ?) loodstarieven.<br>
Loodsboten en trouwens ook betonningsvaartuigen zijn tot 1980 dus uit de marinebegroting betaald en de grotere zeegaande loodsboten hebben allemaal een marine roepnaam gekregen.
<hr>
!! Stations schepen M-klasse
Op dit moment (2011) heeft het Nederlandse Loodswezen 3 Stationsschepen uit de M-klasse. De Markab, Menkar en Mirfak. Er is inmiddels begonnen aan een opvolgende klasse.
Standaard ligt er 1 op de Maascenter, 1 op de Schouwenbank, de derde ligt binnen voor onderhoud/bunkers etc of in Hoek van Holland of in Vlissingen.
De M-klasse is gebouwd in de jaren 77/78 door "Vuyk Scheepswerven " in Capelle aan den IJssel.
|Lengte over alles |59.00 m|
|Lengte |55.73 m|
|Breedte |10.60 m|
|Holte |5.71 m|
|Diepgang |3.71 m|
|Snelheid |13 knopen|
|Bruto gewicht |871 GRT|
|Netto gewicht |261 GRT|
|Hoofdaandrijving |(diesel/elektrisch)1x "Lips" propeller. 1x elektrische hoofdmotor. Merk: "Smit" (Holec). Max.vermogen: 1060 kW bij 250 t.p.m.|
|Hoofdmotoren |<|h
|>|3x 4-slag 6 cyl.dieselmotoren. Merk: "Stork Werkspoor". Type: Dro 216 K. Totaal vermogen: 3x 467 kW at 750 t.p.m.<br>Elektrische installatie: 3x D.C. generatoren, elk 380 kW. Merk: "Smit" (Holec), aangedreven door dieselmotoren.<br>3x A.C. generatoren elk 380V, 50hz, 180 kW. Merk: "Heemaf", aangedreven door hoofdmotoren.<br>1x A.C. auxiliary generator, 380V, 50 hz, 83kW bij 1500 t.p.m. merk: "Heemaf" aangedreven door een dieselmotor, merk: "DAF" type: DU 825, max vermogen: 90 kW bij 1.500 t.p.m.|
|Boegschroef |1x "Lips" propeller, elektrisch aangedreven, Max.vermogen: 304 kW bij 1.200 t.p.m.|
|Stuurinstallatie |Type: "vane", elektrisch/hydraulisch. Merk: "AEG|
|Brandstofcapaciteit |78.83 m³|
|Accommodatie |Accommodatie met airconditioning voor 49 personen, zowel bemanning als loodsen. Max. aantal bemanningsleden: 15|
```
IMO number : 7605691
Name of ship : MARKAB
Call Sign : PFVA
MMSI : 244949000
```
```
IMO number : 7605689
Name of ship : MENKAR
Call Sign : PFYC
MMSI : 244955000
```
```
IMO number : 7605677
Name of ship : MIRFAK
Call Sign : PFZY
MMSI : 244950000
```
<hr>
2010
Een mooie gelegenheid om 's te bekijken hoe de vloot van het loodswezen eruit ziet en hoe die geplaatst is. De website van het loodswezen geeft niet echt duidelijkheid maar ik ben op het volgende gekomen (corrigeer me a.u.b. als ik het fout heb, want ik weet het niet zeker):
Het loodswezen bestaat uit vier afdelingen: Rotterdam-Rijnmond, Scheldemonden, Amsterdam-IJmond en Noord.
3 loodskotters van de M-klasse (Menkar, Mirfak en Markab) die zich bevinden op de twee belangrijkste loods kruisposten langs de Nederlandse kust (Steenbank en Maas Center). Elk heeft 2 jetgedreven loodsjollen (7 in totaal in dienst) aan boord waarmee de loodsen afgezet en opgehaald worden. De kotters hebben accommodatie voor meerdere loodsen, zodat deze kunnen ontspannen tussen de verschillende beloodsingen.
2 SWATH's (Cetus en Perseus). Eentje voor regio Rotterdam Rijnmond en één voor regio Scheldemonden. Worden ingezet voor zowel beloodsing als aan- en afvoer naar de loodskotters en hebben plaats voor 12 loodsen. De bedoeling was om 6 SWATH's aan te schaffen (2 voor zowel R'dam-Rijnmond als Scheldemonden, 1 voor Amsterdam-IJmond en 1 in reserve), maar blijkbaar voldeden deze vaartuigen dus toch niet als zodanig, want de andere vier zijn er niet gekomen. Wat dan wel weer tegenstrijdig is, is dat het Vlaamse loodswezen o.a. gebaseerd op de Nederlandse en Duitse ervaringen 3 kleine SWATH's en 1 SWATH-moederschip aan gaat schaffen voor loodskruispost Wandelaar.
10 jet-tenders in 2 series (Vernoemd naar NASA-ruimteprogramma's???: Voyager, Apollo, Gemini, Mercury, Pioneer. Serie 2 naar spaceshuttles???: Discovery, Endeavour, Enterprise, Explorer, Columbia. Atlantis is afgeschreven na een aanvaring met een groene boei). Aluminium tenders die 28 knopen kunnen halen en plaats hebben voor 12 loodsen. In de 2 drukke regio's primair ingezet voor het ferry-en van loodsen van de haven naar de kotters v.v., terwijl ze in de andere twee regio's ingezet worden als primair loodsvaartuig.
4 conventionele tenders (Zeemeeuw, Wulp, Reiger, -). Voormalige vaste vloot van tenders, nu nog 4, ingezet als reserveboten of in havengebieden waar er zelden beloodst wordt (Den Helder).
3 nieuwe jet-tenders (Aquila, Draco, Orion) t.v.v. de eerste oudere jet-tenders. Niet duidelijk of dit project in het leven is geroepen nadat de 4 geplande SWATH's niet zijn aangeschaft of dat dit een apart project is om de eerste jet-tenders 1 op 1 te vervangen.
Verder kan het Nederlandse loodswezen ook gebruik maken van een helikopter-service met Dauphins d.m.v. contract met een Belgisch bedrijf (die ook vliegt voor de Vlaamse loodsen).
Er zijn plannen voor nieuwe loodskotters van 80m lang t.v.v. de M-klasse. Deze zijn nu in ontwikkeling bij Marin. Er worden er i.i.g. 2 besteld met een optie voor een derde. Dan heerst er bij de vraag: één voor elke grote loodskruispost, of enkel voor Maas Center? Ik las nl. ook over een convenant met het Vlaamse loodswezen over gezamenlijk gebruik van één kruispost.
<hr>
De volgende schepen werden per 1 september 1988 overgenomen van het Rijk:
|Naam |Bouwjaar |Overdrachtswaarde<br>in guldens|h
|Wega |1968 |3 000 000 |
|Altair |1974 |6 000 000 |
|Spica |1973 |6 000 000 |
|Fomalhaut |1974 |6 000 000 |
|Markab |1978 |9 000 000 |
|Menkar |1977 |9 000 000 |
|Mirfak |1977 |9 000 000 |
|Albatros |1984 |4 500 000 |
|Zeekoet |1983 |450 000 |
|Stern |1976 |200 000 |
|Kokmeeuw |1980 |500 000 |
|Jan van Gent |1969 |500 000 |
|Aalscholver |1969 |500 000 |
|Zeemeeuw |1970 |500 000 |
|Zeezwaluw |1971 |500 000 |
|Wulp |1978 |1 000 000 |
|Roerdomp |1980 |1 000 000 |
|Reiger |1980 |1 000 000 |
|Bruinvis |1965 |675 000 |
|Walvis |1965 |675 000 |
|Delfshaven |1959 |300 000 |
|Zilvermeeuw |1954 |250 000 |
<hr>
Zie Backup/Foto_Amsterdam/Schepen/_Info
* Naamseinen 1 001.jpg
* Naamseinen 2 001.jpg
* Naamseinen 3 001.jpg
* Naamseinen 4 001.jpg
Nog een kleine kanttekening bij jouw lijst. In 1950 is de verdeling tot stand gekomen zoals ik omschreven heb.
In 1953 is een nieuwe verdeling gemaakt, waarbij vooral de Engelsen een groot deel van hun pakket moesten
inleveren ten gunste van bijv. Italië, Noorwegen, etc.<br>
In 1950 zijn in de A800-serie ondergebracht de oude letters HB, HF, HI, HQ, HL, HS ,RS, RW en HE.<br>
In de A900-serie kwamen de letters HY, RY, RB, RA, RD, RH, RJ, RT, RW, RL en RV.<br>
In het blok A981 t/m 999 kwamen diverse vaartuigen van het Loodswezen.
{{||$:/_ship_template}}
* <<slider "Torpedoboten Rindjani, Ophir en Pangrango, ca. 1910" Schepen343>>
In 1941 in dienst gesteld als Hulpmijnenveger 11 (HMV11).<br>
De Smeroe, Merbaboe en Rindjani voeren op 3 maart 1942 het Westervaarwater bij Soerabaja uit met bestemming Broome West-Australië, waar de drie scheepjes op 10 maart aan kwamen. Vanuit Broome gingen de hulpmijnenvegers verder naar Fremantle waar zij gedurende de rest van de oorlog ingezet werden als patrouillevaartuigen en mijnenvegers.<br>Na terugkeer uit Australië werd het scheepje ingedeeld als patrouillevaartuig bij de zee- en kustbewakingsdienst in station Bandjermassin, Zuid-Borneo. In december 1949 werd de Rindjani overgedragen aan de nieuwe staat Indonesië.
[img[Robert Anderson|Images/Robert_Anderson.gif]]<br>
//Robert Anderson//
In 1968 omgebouwd tot duikvaartuig.
ex IJM112, Maux Hero, Evelyn Belman (1916).<br>De trawler werd op 4 oktober 1939 gevorderd, omgebouwd en in dienst gesteld (BV45). Tijdens de meidagen van 1940 kon de aangepaste trawler ontkomen naar Engeland en werd omgebouwd tot hulpmijnenveger. Nam deel aan veegoperaties in Britse wateren. Op 1 juni 1943 werd het schip uit dienst gesteld en overgedragen aan de Royal Navy. Na de oorlog teruggegeven aan de eigenaar.
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip (LPD) Rotterdam 2012" Schepen201>>
!!! Enkele - oudere - roundels (landsymbolen in de militaire luchtvaart)
<br>
|borderless|k
|[img width=100 [Images/Balkenkreuz.svg.png]]| |[img width=100 [Images/Finnish_air_force_roundel_1934-1945_border.svg.png]]| |[img width=100 [Images/Latvia_roundel_1940_border.png]]| |[img width=100 [Images/600px-Netherlands_roundel.svg.png]]| |[img width=100 [Images/330px-Netherlands_roundel_WW2.svg.png]]| |[img width=100 [Images/1937-1939_352px-RAF_Type_A1_Roundel.svg.png]]| |[img width=100 [Images/1942-1945_352px-RAF_Type_C1_Roundel.svg.png]]|
| Duitsland || Finland || Letland || Nederland || Nederland || United Kingdom || United Kingdom |
| 1917 - 1945 || 1934 - 1945 || 1918 - 1940 || 1921 - 1939 || 1939 - 1940 || 1937 - 1942 || 1942 - 1945 |
<<<
''N.B.:'':
Voor uitgebreidere info omtrent:
* Nederlandse roundels zie [[Nederlandse roundels|Roundels NL]].
* Britse roundels zie http://woodair.net/Aviation/roundels/RAF_Roundels.htm
* Roundels i.h.a. https://en.wikipedia.org/wiki/Military_aircraft_insignia
<<<
!! Nederlandse roundels (landsymbolen in de militaire luchtvaart)
[[Nederlandse luchtvaart|http://www.nederlandseluchtvaart.nl/forums/showthread.php?40048-geschiedenis-Nederlandse-roundel-visueel-gemaakt&p=68233#post68233]]
|[img height=300 [Images/Roundel_1.jpg]]<br>{{Roundels_NL_1}}|
||
|[img height=300 [Images/Roundel_2.jpg]]<br>{{Roundels_NL_2}}|
||
|[img height=300 [Images/Roundel_3.jpg]]<br>{{Roundels_NL_3}}|
||
|[img height=300 [Images/Roundel_4.jpg]]<br>{{Roundels_NL_4}}|
||
|[img height=300 [Images/Roundel_5.jpg]]<br>{{Roundels_NL_5}}|
''1914-1921''. De oranje bal op/onder de vleugels, op de romp en soms ook op het kielvlak.
Het bewegend deel van het kielvlak heeft de nationale driekleur (Finflash).<br>
''1921-1930''. De rood wit blauwe roundel (met de klok mee gezien) met oranje middenstip. Op de romp wit beneden, op/onder de vleugels rood naar voren.<br>
''1930-1933''. Dezelfde roundel. Op de romp wit naar beneden maar nu op/onder de vleugels rood naar achteren.<br>(Er zijn foto's waarbij op de romp de roundel met rood onder staat. Ik denk dat dit uitzonderingen zijn omdat het merendeel van de foto's wit onder heeft).<br>
''1933-1939''. Dezelfde roundel maar nu in zijn definitieve positie met op de romp wit onder en op/onder de vleugels wit naar achteren.
''1939-1940''. Grote oranje driehoeken met zwarte randen, finflash oranje met zwarte randen.<br>
''1940-1946''. Kleinere oranje driehoeken en finflash met zwarte randen.<br>
''1940-1942''. In Nederlands-Indië kleinere driehoeken en geen oranje finflash meer.
''1942-1946''. In Nederlands-Indië, om verwarring met de Japanse rode bal te voorkomen zijn de roundels vervangen door de nationale vlag.<br>
''1946-1959''. De bekende vooroorlogse roundel keert terug maar de finflash niet.<br>
''1959-heden''. De vleugel roundels alleen nog maar op linksboven en rechtsonder.
''1980-heden''. Op grijze vliegtuigen verkleint de roundel tot ca 30 cm (b.v.: F-16A/B, C-130H, KDC-10)<br>
''1980-heden''. Op nieuwere grijze toestellen komt een grijze 'low-visibility' roundel (b.v.: C-130H-30, F-35A, grijze Cougar)<br>
''1980-heden''. Op groene toestellen komt een blauwgroene roundel (b.v.: AH-64D, CH-47F)
!! [[ROYAL DUTCH NAVY (NETHERLANDS)|http://www.navypedia.org/ships/netherlands/nl_index.htm]]
# <<slider "Capital ships & Monitors" "Capital ships & Monitors">>
# <<slider "Aircraft carrying ships" "Aircraft carrying ships">>
# <<slider Cruisers Cruisers>>
# <<slider "Torpedo ships" "Torpedo ships">>
# <<slider "Submarines Submarines>>
# <<slider Escorts Escorts>>
# <<slider "Other fighting ships" "Other fighting ships">>
# <<slider "Coastal forces" "Coastal forces">>
# <<slider "Amphibious ships" "Amphibious ships">>
# <<slider "Mine warfare ships" "Mine warfare ships">>
# <<slider "Converted merchant vessels" "Converted merchant vessels">>
# <<slider "Non-naval forces" "Non-naval forces">>
{{||$:/_plane_template}}
* <<slider "Rumpler 6B-2 1917" Vliegtuig185>>
* <<slider "Rumpler 6B-2 1917" Vliegtuig186>>
Een Duitse Rumpler 6B-2 (1040), maakte op 29 mei 1917 een noodlanding bij West-Capelle. Het werd geïnterneerd met de registratie U1 en in juli 1918 naar Nederlands Oost-Indië gestuurd, waar het 16-11-1918 arriveerde.
In april 1919 maakte het daar de eerste vlucht. Later werd het omgebouwd tot tweezitter, maar stortte in oktober 1919 bij een testvlucht neer en werd afgeschreven.
!! Rumpler
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[6B-2|Rumpler 6B-2]] |{{Rumpler 6B-2!!soort}} | 1| U1 | {{Rumpler 6B-2!!per}} |
Voor de opleiding van adspirant vliegers werd in Nederlands-Indië gebruik gemaakt van de Ryan STM trainer. Tussen december 1940 en maart 1942 waren deze vliegtuigen als trainer in gebruik bij de MLD (en bij ML-KNIL, de Militaire Luchtvaart afdeling van het KNIL).<br>
De Ryan STM werd door de MLD gebruikt met en zonder drijvers te Perak en Morokrembangan.<br>
Kort voor de Japanse inval werden in opdracht van de MLD 36 (van de 48) Ryans naar Australië verscheept en deze kwamen op 10 maart 1942 aan in Sydney.<br>
Aanvankelijk was het de bedoeling om een vliegschool in Australië op te richten. De vliegscholen van de MLD en van de ML-KNIL waren naar Australië geëvacueerd.<br>
Daar in juni 1942 in de VS de RNMFS (Royal Netherlands Military Flying School) te Jackson, Mississippi werd opgericht, kwam de opleiding in Australië te vervallen en werden de Ryans verkocht aan de RAAF.
Er vliegen in Australië nog een aantal STM-2's rond, zelfs in MLD-beschildering, zie [[Ryan ST-M in Australia|http://www.goodall.com.au/australian-aviation/ryan-stm/ryan-stm.htm]]
{{||$:/_plane_template}}
* <<slider "Ryan STM-2S 1940" Vliegtuig123>>
* <<slider "Ryan STM-2S 1942" Vliegtuig126>>
* <<slider "Ryan STM-2S datum?" Vliegtuig124>>
* <<slider "Ryan STM-2S Ca. 2012" Vliegtuig125>>
<iframe width="600" height="500" src="https://www.youtube.com/embed/oVzo3kHIiAk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="600" height="500" src="https://www.youtube.com/embed/yQ6RsBAwkdU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<<slider "Historie Ryan STM-2" "Ryan STM-2_historie">>
> ''N.B.:'' ''STM-2S'' = ''STM-2'' met drijveronderstel, dat overigens uitwisselbaar was met het wielonderstel.<br>ML-KNIL beschikte over 60 Ryan STM-2's (RO10 t/m RO69). In tegenstelling tot de MLD is door de ML-KNIL niet besloten om de vliegscholen te evacueren. Alle, nog resterende toestellen zijn dan ook door de Japanners na de capitulatie (8-3-1942) buitgemaakt.
!! Ryan
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[STM-2S|Ryan STM-2S]] |{{Ryan STM-2S!!soort}} | 24/48|zie hieronder | {{Ryan STM-2S!!per}} |
* <<slider "Registratiegegevens Ryan STM-2" "Registratiegegevens Ryan STM-2">>
* <<slider "Registratiegegevens Ryan STM-2S" "Registratiegegevens Ryan STM-2S">>
Werd in 1940 in dienst gesteld als Hulpmijnenveger 8 (HMV8). Op 2 maart 1942 onderging zij hetzelfde lot als haar zusterschepen Ardjoeno en Kawi. Het schip werd op last van de Japanse bezetter gelicht en gerepareerd. Op 31 juli 1944 werd de ex-Salak in Japanse dienst gesteld als hulponderzeebootjager 118. Op 6 november van dat jaar werd het schip zwaar beschadigd door een Amerikaanse luchtaanval op 4 mijl ten oosten van Waingapoe, Soemba. Na WWII werd het vaartuig teruggevonden in Soerabaja, maar was niet meer manoeuvreerbaar. De Salak werd nog wel enige tijd gebruikt als drijvende steiger.
{{||$:/_ship_template}}
* <<slider "Schroefstoomsvhip Samarang ca. 1880" Schepen418>>
{{||$:/_plane_template}}
* <<slider "Saunders-Roe Princess ca. 1952" Vliegtuig147>>
* <<slider "Saunders-Roe Princess ca. 1953" Vliegtuig146>>
De grootste ''metalen'' vliegboot ooit gebouwd.
> De grootse vliegboot ooit gebouwd was de - houten - [[Hughes H-4 Herculus]].
De Princess werd ontworpen als een modernere (turboprop), grotere (100 passagiers) en luxueuse opvolger van de vooroorlogse commerciële vliegboten voor transatlantisch vervoer.<br>
Het werk voor 3 vliegboten - gestart in 1946 - werd uitgevoerd in het kader van een ontwikkelingscontract voor het 'Ministry of Supply', met de bedoeling dat dit zou leiden tot een contract voor het vliegtuig van de Britse luchtvaartmaatschappij <<popup BOAC BOAC>>. Hoewel het aanvankelijke ontwikkelingscontract met succes was vervuld, haakte BOAC af. Het tijdperk van de grote vliegboten was geëindigd voor de voltooiing van het vliegtuig.<br>
Eind 1951 dacht men de 3 vliegboten als transportvliegboot voor de <<popup RAF RAF>> af te bouwen, maar in maart 1952 werd besloten alleen het prototype af te bouwen en de andere 2 rompen te conserveren. Tussen 1952 en 1954 werden daarmee 47 testvluchten gemaakt.<br>
Verkoop van de 3 vliegboten bleek moeilijk. Toen in 1964 Aero Spacelines het plan had de 3 te kopen, bleken de 2 geconserveerde dusdanig gecorrodeerd te zijn dat afbouw niet haalbaar was. In 1967 werden aale 3 vliegboten gesloopt.
!! Saunders-Roe
|Type |rol |opmerkingen |h
|[[SR.45 Princess|Saunders-Roe SR.45 Princess]]|{{Saunders-Roe SR.45 Princess!!soort}}|slechts 1 prototype|
@@background-color:Cyan;Hi @tobibeer the behaviour for a long time is that `$:/temp` and `$:/state` tiddlers are saved normally (we do exclude tiddlers prefixed `$:/state/popup`). The motivation is so that the user interface state is preserved across refreshes.@@
$:/core/save/all
```
\define saveTiddlerFilter()
[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$
\end
{{$:/core/templates/tiddlywiki5.html}}
```
{{||$:/_plane_template}}
* <<slider "Savoia-Marchetti S.55X 1928" Vliegtuig036>>
* <<slider "Savoia-Marchetti S.55X 1933" Vliegtuig045>>
* <<slider "Savoia-Marchetti S.55X ca. 1933" Vliegtuig096>>
{{||$:/_plane_template}}
* <<slider "Savoia-Marchetti S.66 ca. 1936" Vliegtuig139>>
* <<slider "Savoia-Marchetti S.66 ca. 1936" Vliegtuig219>>
!! Savoia-Marchetti
|Type |rol |opmerkingen |h
|[[S.55X|Savoia-Marchetti S.55X]]|{{Savoia-Marchetti S.55X!!soort}}||
|[[S.66|Savoia-Marchetti S.66]]|{{Savoia-Marchetti S.66!!soort}}||
<$list filter="[tag[scheepsfoto]random[1]]">
<$transclude mode="block"/>
</$list>
<$button set="$:/temp/temp" setTo="" class="tc-btn-invisible tgc-trigger-knop" tooltip="Volgende scheepsfoto">{{Trigger-icon}}</$button>
<$button message="tm-close-tiddler" class="tc-btn-invisible tgc-sluit-knop" tooltip="Sluit deze scheepsfoto">{{Sluitknop-icon}}</$button>
<$button class="tc-btn-invisible tgc-foto-button" tooltip="Willekeurige scheepsfoto">
<$action-sendmessage $message="tm-modal" $param="Scheepsfoto"/>
{{$:/_new_ship_icon}}
</$button>
* <<slider "ROYAL DUTCH NAVY" "ROYAL DUTCH NAVY (NETHERLANDS) (Navpedia)">>
* <<slider Sleepboten Sleepboten>>
* <<slider "Extra schepen" "Extra schepen">>
* <<slider "Nederlands-Indische Marine" "Nederlands-Indische Marine">>
* <<slider "Verliezen Nederlands-Indië" "Verliezen Nederlands-Indië">>
---
* [[Zeehond (1892)]] @@.h geen data@@, @@.C geen silhouet@@
* [[Dolfijn (1889)]] @@.h geen data@@, @@.C geen silhouet@@
* [[Aldebaran (1913)]] √
* [[Orion (1912)]] √
* [[Bellatrix (1914)]] √
* [[Canopus (1915)]] √
* [[Deneb (1915)]] √
* [[Cornelis Drebbel (1915)]] @@.C geen silhouet@@
* [[Eridanus (1918)]] @@.C geen silhouet@@
* [[Gemma (1918)]] @@.C geen silhouet@@
* Onderzeebootmoederschip [[Pelikaan (1922)]] (1922-1934) √
* [[Albatros (1912)]] √
* [[Hoofdinspecteur Zeeman (1909)]] @@.C geen silhouet@@
* [[Poolster (1939)]] @@.C geen silhouet@@
* [[Pollux (1922)]] @@.C geen silhouet@@
* [[Tydeman (1918)]] @@.C geen silhouet@@
* [[Willebrord Snellius (1929)]] √
* [[Castor (1915)]] @@.C geen silhouet@@
* [[Zuiderkruis (1924)]] @@.C geen silhouet@@
* [[Arend (1929)]] @@.C geen silhouet@@
* [[Valk (1929)]] @@.C geen silhouet@@
* [[Fomalhaut (1923)]] @@.C geen silhouet@@
* [[Merel (1928)]] @@.C geen silhouet@@
* [[Reiger (1931)]] @@.C geen silhouet@@
* [[Fazant (1932)]] @@.C geen silhouet@@
* [[Sirius (1922)]] @@.C geen silhouet@@
* [[Wega (1923)]] @@.C geen silhouet@@
De Drebbel was het stationsschip voor de Onderzeedienst in Vlissingen. De Drebbel had vanaf de indienststelling tot 1924 de standplaats Vlissingen.
---
Een stationschip ligt op 'station' en is direct klaar om waar nodig uit te varen en een missie te volbrengen.
---
CONVERTED MERCHANT VESSELS
auxiliary minelayers of WWI
100 - 1000 BRT
* [[Triton (1914)]] (ex-Onze Trawler) (1906, 477, 30 mines, 1914 - 1921)
* [[Vulcanus (1917)]] (ex-Azalia) (1902, 410, 30 mines, 1917 - 1920)
* `Hercules ()` (1910, 234, 20 mines, 1919 - 1932) = [[Hercules (1919)]]?
Ship project history: Ex-trawlers (first two) and @@.h tug (Hercules)@@.
---
Voor de volledigheid hier de LST's in gebruik in Indonesie:
* USS LST 383 10.06.1946 kreeg de naam Albatros
* USS LST 627 15.06.1946 (Thruster) kreeg de naam Pelikaan
* USS LST 1040 01.06.1946 kreeg de naam Fregatvogel
* USS LST 585 21.07.1947 kreeg de naam Condor
* USS LST 1034 10.08.1946 kreeg de naam Woendi
Het voorraadschip Pelikaan A830 was niet de voormalige LST627, maar de ex HMS Thruster, LST3520.<br>
De LST627 had ook de naam Pelikaan maar deze LCT behoorde toe aan de Federale Scheepvaart Dienst in Ned.Indie.<br>
Deze organisatie bezat vijf van deze LCT's (Albatros, Pelikaan, Fregatvogel, Condor en Woendi), waarvan de Woendi (A842) als enige naar de Kon. Marine is overgegaan.
---
!!!Nederlandse Rivieroorlogvoering in de Indonesische Archipel 1945-1950
Van het Departement van de Scheepvaart waren twee Landing Ships Tanks (LST 2 en LST 3), twee Landing Craft Infantry (IJsvogel en Stormvogel) en één Landing Craft Tanks (N 209) bij het geheel gevoegd.
!! Scheepsklassen
Dit is een - incomplete - lijst van scheepsklassen van de Nederlandse marine (ca. 1860 - heden).
<<slider Bronnen "Bronnen van schepen">>
<<tabs "[[Scheepsklassen voor 1900]] [[Scheepsklassen 1900 - 1935]] [[Scheepsklassen 1935 - 1950]] [[Scheepsklassen 1950 - heden]]" "Scheepsklassen voor 1900">>
!!!! Scheepsklassen van de Nederlandse marine 1900 - 1935
<br>
| 1900-1935 |<|<|<|<|h
|''Klasse/prototype''|''Type''|''Dienstperiode'' ^^1^^ |''Aantal'' ^^2^^ |''Schepen in klasse''|h
|''Hydra-klasse''|Torpedoboot| 1900-1921 | 5 |{{Hydra (1900)!!ships}}|
|''Ophir-klasse''|Torpedoboot| 1901-1919 | 6 |{{Ophir (1901)!!ships}}|
|''Koningin Regentes-klasse''|Pantserschip| 1902-1940 | 3 |{{Koningin Regentes (1902)!!ships}}|
|''G-klasse''|Torpedoboot| 1905-1919 | 12 |{{G9 (1904)!!ships}}|
|''K-klasse''|Torpedoboot| 1905-1940 | 3 |{{Christiaan Cornelis (1905)!!ships}}|
|''Marten Harpertszoon Tromp''|Pantserschip| {{Marten Harpertsz. Tromp (1906)!!per}} | 1 |{{Marten Harpertsz. Tromp (1906)!!ships}}|
|''Draak-klasse''|Torpedoboot| 1907-1921 | 3 |{{Draak (1907)!!ships}}|
|''Jacob van Heemskerck''|Pantserschip| {{Jacob van Heemskerck (1908)!!per}} | 1 |{{Jacob van Heemskerck (1908)!!ships}}|
|''De Zeven Provinciën''|Pantserschip| {{De Zeven Provinciën (1910)!!per}} | 1 |{{De Zeven Provinciën (1910)!!ships}}|
|''Hydrograaf''|Opnemingsvaartuig | {{Hydrograaf (1910)!!per}} | 1 |{{Hydrograaf (1910)!!ships}}|
|''Wolf-klasse''|Torpedobootjager| 1911-1928 | 8 |{{Wolf (1911)!!ships}}|
|''O2-klasse''|Duikboot| 1911-1935 | 4 |{{O2 (1911)!!ships}}|
|''Hydra-klasse''|Mijnenlegger| 1911-1946 | 2 |{{Hydra (1912)!!ships}}|
|''KI''|Duikboot| {{KI (1914)!!per}} | 1 |{{KI (1914)!!ships}}|
|''Triton''|Mijnenlegger| {{Triton (1914)!!per}} | 1 |{{Triton (1914)!!ships}}|
|''Brinio-klasse''|Kanonneerboot| 1914-1940 | 3 |{{Brinio (1914)!!ships}}|
|''G13-klasse''|Torpedoboot| 1914-1943 | 4 |{{G13 (1914)!!ships}}|
|''Cornelis Drebbel''|Depot- en logementsschip| {{Cornelis Drebbel (1915)!!per}} | 1 |{{Cornelis Drebbel (1915)!!ships}}|
|''O6''|Duikboot| {{O6 (1916)!!per}} | 1 |{{O6 (1916)!!ships}}|
|''O7''|Duikboot| {{O7 (1916)!!per}} | 1 |{{O7 (1916)!!ships}}|
|''Z5-klasse''|Torpedoboot| 1916-1944 | 4 |{{Z5 (1917)!!ships}}|
|''M1'' (ex Duitse UC-8)|Duikboot| {{M1 (1917)!!per}} | 1 |{{M1 (1917)!!ships}}|
|''O8'' (ex Britse H6)|Duikboot| {{O8 (1917)!!per}} | 1 |{{O8 (1917)!!ships}}|
|''M-klasse''|Mijnenveger| 1918-1940 | 4 |{{M1 (1918)!!ships}}|
|''Tydeman''|Opnemingsvaartuig| {{Tydeman (1918)!!per}} | 1 |{{Tydeman (1918)!!ships}}|
|''Z1-klasse''|Torpedoboot| 1919-1940 | 4 |{{Z1 (1919)!!ships}}|
|''KIII-klasse''|Duikboot| 1920-1936 | 2 |{{KIII (1920)!!ships}}|
|''KV-klasse''|Duikboot| 1920-1942 | 3 |{{KV (1920)!!ships}}|
|''Eilerts de Haan''|Opnemingsvaartuig | {{Eilerts de Haan (1921)!!per}} | 1 |{{Eilerts de Haan (1921)!!ships}}|
|''Pelikaan''|Onderzeebootmoederschip| {{Pelikaan (1922)!!per}} | 1 |{{Pelikaan (1922)!!ships}}|
|''KII''|Duikboot| {{KII (1922)!!per}} | 1 |{{KII (1922)!!ships}}|
|''KVIII-klasse''|Duikboot| 1922-1943 | 3 |{{KVIII (1922)!!ships}}|
|''Douwe Aukesklasse''|Mijnenlegger| 1922-1945 | 2 |{{Douwe Aukes (1922)!!ships}}|
|''Pro Patria''|Mijnenlegger| {{Pro Patria (1923)!!per}} | 1 |{{Pro Patria (1923)!!ships}}|
|''Krakatau''|Mijnenlegger| {{Krakatau (1924)!!per}} | 1 |{{Krakatau (1924)!!ships}}|
|''Java-klasse''|Lichte kruiser| 1925-1942 | 2 |{{Java (1925)!!ships}}|
|''KXI-klasse''|Duikboot| 1925-1945 | 3 |{{KXI (1925)!!ships}}|
|''O9-klasse''|Duikboot| 1926-1944 | 3 |{{O9 (1926)!!ships}}|
|''Flores-klasse''|Kanonneerboot| 1926-1955 | 2 |{{Flores (1926)!!ships}}|
|''Admiralenklasse (1)''|Torpedobootjager| 1928-1942 | 4 |{{De Ruyter (1928)!!ships}}|
|''Admiralenklasse (2)''|Torpedobootjager| 1929-1942 | 4 |{{Banckert (1930)!!ships}}|
|''Arend''|Opiumjager| {{Arend (1929)!!per}} | 2 |{{Arend (1929)!!ships}}|
|''Willebrord Snellius''|Opnemingsvaartuig| {{Willebrord Snellius (1929)!!per}} | 1 |{{Willebrord Snellius (1929)!!ships}}|
|''A-klasse''|Mijnenveger| 1930-1942 | 4 |{{A (1930)!!ships}}|
|''Nautilus''|Mijnenlegger| {{Nautilus (1930)!!per}} | 1 |{{Nautilus (1930)!!ships}}|
|''O12-klasse''|Duikboot| 1931-1945 | 4 |{{O12 (1931)!!ships}}|
|''Prins van Oranjeklasse''|Mijnenlegger| 1932-1942 | 2 |{{Prins van Oranje (1932)!!ships}}|
|''Johan Maurits van Nassau''|Kanonneerboot| {{Johan Maurits van Nassau (1933)!!per}} | 1 |{{Johan Maurits van Nassau (1933)!!ships}}|
|''KXIV-klasse''|Duikboot| 1933-1946 | 5 |{{KXIV (1933)!!ships}}|
||||||
{{Scheepsklassen_footer}}
\define mlist(tag)
<$list filter="[tag[$tag$]sort[title]]">
<$link to={{!!title}}>
<$view field="title"/>
</$link>
</$list>
\end
\define clist(tag)
<$count filter="[tag[$tag$]]"/>
\end
!!!! Scheepsklassen van de Nederlandse marine 1935 - 1950
<br>
| 1935-1950 |<|<|<|<|h
|''Klasse/prototype''|''Type''|''Dienstperiode'' ^^1^^ |''Aantal'' ^^2^^ |''Schepen in klasse''|h
|''O16''|Onderzeeboot| {{O16 (1936)!!per}} | 1 |{{O16 (1936)!!ships}}|
|''De Ruyter''|Lichte kruiser| {{De Ruyter (1936)!!per}} | 1 |{{De Ruyter (1936)!!ships}}|
|''Jan van Brakel''|Mijnenlegger| {{Jan van Brakel (1936)!!per}} | 1 |{{Jan van Brakel (1936)!!ships}}|
|''Mercuur''|Torpedowerkschip| {{Mercuur (1936)!!per}} | 1 |{{Mercuur (1936)!!ships}}|
|''Jan van Amstelklasse''|Mijnenveger / mijnenlegger| 1937-1943 | 9 |{{Jan van Amstel (1937)!!ships}}|
|''Tromp-klasse''|Lichte kruiser| 1938-1969 | 2 |{{Tromp (1938)!!ships}}|
|''Urania''|Opleidingsschip| {{Urania (1928)!!per}} | 1 |{{Urania (1928)!!ships}}|
|''Hoofdinspecteur Zeeman''|Ondersteuningsschip| {{Hoofdinspecteur Zeeman (1909)!!per}} | 1 |{{Hoofdinspecteur Zeeman (1909)!!ships}}|
|''Orion''|Ondersteuningsschip| {{Orion (1912)!!per}} | 1 |{{Orion (1912)!!ships}}|
|''Pollux''|Ondersteuningsschip| {{Pollux (1922)!!per}} | 1 |{{Pollux (1922)!!ships}}|
|''Poolster''|Ondersteuningsschip| {{Poolster (1939)!!per}} | 1 |{{Poolster (1939)!!ships}}|
|''Castor''|Ondersteuningsschip| {{Castor (1915)!!per}} | 1 |{{Castor (1915)!!ships}}|
|''Aldebaran''|Ondersteuningsschip| {{Aldebaran (1913)!!per}} | 1 |{{Aldebaran (1913)!!ships}}|
|''Bellatrix''|Ondersteuningsschip| {{Bellatrix (1914)!!per}} | 3 |{{Bellatrix (1914)!!ships}}|
|''Eridanus''|Ondersteuningsschip| {{Eridanus (1918)!!per}} | 1 |{{Eridanus (1918)!!ships}}|
|''Fomalhaut''|Ondersteuningsschip| {{Fomalhaut (1923)!!per}} | 1 |{{Fomalhaut (1923)!!ships}}|
|''Gemma''|Ondersteuningsschip| {{Gemma (1918)!!per}} | 1 |{{Gemma (1918)!!ships}}|
|''Fazant''|Ondersteuningsschip| {{Fazant (1932)!!per}} | 3 |{{Fazant (1932)!!ships}}|
|''Albatros''|Ondersteuningsschip| {{Albatros (1912)!!per}} | 1 |{{Albatros (1912)!!ships}}|
|''Sirius''|Ondersteuningsschip| {{Sirius (1922)!!per}} | 2 |{{Sirius (1922)!!ships}}|
|''Zuiderkruis''|Ondersteuningsschip| {{Zuiderkruis (1924)!!per}} | 1 |{{Zuiderkruis (1924)!!ships}}|
|''O19-klasse''|Onderzeeboot| 1939-1945 | 2 |{{O19 (1939)!!ships}}|
|''Van Kinsbergen''|Kanonneerboot| {{Van Kinsbergen (1939)!!per}} | 1 |{{Van Kinsbergen (1939)!!ships}}|
|''Willem van der Zaan''|Mijnenlegger| {{Willem van der Zaan (1939)!!per}} | 1 |{{Willem van der Zaan (1939)!!ships}}|
|''Argus''|Duikvaartuig| {{Argus (1939)!!per}} | 1 |{{Argus (1939)!!ships}}|
|''Gevorderde schepen''<br>(vnl. trawlers)|Hulpmijnenveger| 1939-1947 | <<clist hmv>> |<<mlist hmv>>|
|''ABC-klasse''|Hulpmijnenveger| 1939-1942 | 6 |{{Alor (1939)!!ships}}|
|''TM51-klasse''|Torpedomotorboot| {{TM51 (1939)!!per}} | (18)/1 |{{TM51 (1939)!!ships}}|
|''Ardjoeno-klasse''|Hulpmijnenveger| 1940-1942 | 5 |{{Ardjoeno (1940)!!ships}}|
|''TM4-klasse''|Torpedomotorboot| 1940-1942 | 15 |{{TM4 (1940)!!ships}}|
|''O21-klasse''|Onderzeeboot| 1940-1957 | (7)/5 |{{O21 (1940)!!ships}}|
|''Zeearend''|Stafschip / opleidingsschip onderzeebootbestrijding| {{Zeearend (1940)!!per}} | 1 |{{Zeearend (1940)!!ships}}|
|''Hendrik Karssen''|Communicatievaartuig| {{Hendrik Karssen (1939)!!per}} | 1 |{{Hendrik Karssen (1939)!!ships}}|
|''US Wickes-klasse''|Torpedobootjager| {{Campbeltown (1941)!!per}} | 1 |{{Campbeltown (1941)!!ships}}|
|''Gerard Callenburgh-klasse''|Torpedobootjager| {{Isaac Sweers (1941)!!per}} | (4)/1 |{{Isaac Sweers (1941)!!ships}}|
|''DEFG-klasse''|Hulpmijnenveger| 1941-1942 | (10)/6 |{{Djember (1941)!!ships}}|
|''Smeroe-klasse''|Hulpmijnenveger| 1941-1945 | (6)/3 |{{Smeroe (1941)!!ships}}|
|''OJR1-klasse''|Onderzeebootjager| 1941-1946 | (8)/6 |{{OJR1 (1941)!!ships}}|
|''MTB202-klasse''|Torpedomotorboot| 1942-1946 | 9 |{{MTB202 (1943)!!ships}}|
|''MRB50''|Motorreddingboot| {{MRB50 (1942)!!per}} | 1 |{{MRB50 (1942)!!ships}}|
|''Britse U-klasse''|Onderzeeboot| {{Dolfijn (1942)!!per}} | 1 |{{Dolfijn (1942)!!ships}} (ex P 47)|
|''TM22-klasse''|Torpedomotorboot| 1942-1947 | 12 |{{TM22 (1942)!!ships}}|
|''Britse N-klasse''|Torpedobootjager| 1942-1956 | 2 |{{Van Galen (1942)!!ships}}|
|''MMS105 klasse''|Mijnenveger| 1942-1957 | 10 |{{Ameland (1942)!!ships}}|
|''US PC-461 klasse''|Escorteschip / patrouilleboot| {{Queen Wilhelmina (1942)!!per}} | 1 |{{Queen Wilhelmina (1942)!!ships}}|
|''Britse Flowerklasse''|Korvet| {{Friso (1943)!!per}} | 1 |{{Friso (1943)!!ships}}|
|''Britse S-klasse''|Onderzeeboot| {{Zeehond (1943)!!per}} | 1 |{{Zeehond (1943)!!ships}}|
|''MMS126 klasse''|Mijnenveger| 1943-1952 | 8 |{{Duiveland (1944)!!ships}}|
|''Britse River-klasse''|Escorteschip| {{Johan Maurits van Nassau (1943)!!per}} | 1 |{{Johan Maurits van Nassau (1943)!!ships}}|
|''Britse MGB/MTB-klasse''|Kanonneermotorboot/ torpedomotorboot| {{MTB433 (1943)!!per}} | 1 |{{MTB433 (1943)!!ships}}|
|''Britse T-klasse''|Onderzeeboot| 1943-1965 | 4 |{{Dolfijn (1948)!!ships}}|
|''Britse MTB-klasse''|Torpedomotorboot| 1944 | 4 |{{MTB418 (1944)!!ships}}|
|''MAC ship''<br>(Merchant Aircraft Carrier)|Vliegdekschip| 1944-1945 | 2 |{{Gadila (1944)!!ships}}|
|''Canadese MMS105 klasse''|Boeienschip| {{Goeree (1945)!!per}} | 1 |{{Goeree (1945)!!ships}}|
|''Britse Q-klasse''|Torpedobootjager| {{Banckert (1945)!!per}} | 1 |{{Banckert (1945)!!ships}} (ex Quilliam)|
|''Britse S-klasse''|Torpedobootjager| 1945-1962 | 3 |{{Evertsen (1946)!!ships}}|
|''Britse Nairana-klasse''|Vliegdekschip| {{Karel Doorman (1946)!!per}} | 1 |{{Karel Doorman (1946)!!ships}}|
|''AUS Bathurst-klasse''|Mijnenveger / fregat| 1946-1958 | 8 |{{Ambon (1946)!!ships}}|
|''K-klasse''|Kanonneerboot| {{Van Speijk (1946)!!per}} | (3)/1 |{{Van Speijk (1946)!!ships}}; K-klasse in 1940 in aanbouw|
|''US YMS-klasse''|Mijnenveger| 1946-1962 | 10 |{{Borndiep (1946)!!ships}}|
|''Woendi''|Transportschip | {{Woendi (1946)!!per}} | 1 |{{Woendi (1946)!!ships}}|
|''Duitse R218-klasse''|Mijnenveger| 1947-1956 | 9 |{{Goeree (1947)!!ships}}|
|''Britse G-klasse''|Torpedobootjager| {{Marnix (1947)!!per}} | 1 |{{Marnix (1947)!!ships}}|
|''SS China Victory''|Transportschip| 1947-1969 | 3 |{{Zuiderkruis (1944)!!ships}}|
|''Matsanoura Maru''|Bergingsvaartuig| {{Triton (1948)!!per}} | 1 |{{Triton (1948)!!ships}}|
|''Pelikaan''|Ondersteuningsschip | {{Pelikaan (1948)!!per}} | 1 |{{Pelikaan (1948)!!ships}}|
|''Britse Colossus-klasse''|Vliegdekschip| {{Karel Doorman (1948)!!per}} | 1 |{{Karel Doorman (1948)!!ships}}|
|''US Cannon-klasse''|Fregat| 1950-1967 | 6 |{{De Bitter (1950)!!ships}}|
{{Scheepsklassen_footer}}
!!!! Scheepsklassen van de Nederlandse marine 1950 - heden
<br>
| 1950-heden |<|<|<|<|h
|''Klasse/prototype''|''Type''|''Dienstperiode'' ^^1^^ |''Aantal'' ^^2^^ |''Schepen in klasse''|h
|''Zeefakkel''|Opnemingsvaartuig | {{Zeefakkel (1951)!!per}} | 1 |{{Zeefakkel (1951)!!ships}}|
|''Hercules''|Duikvaartuig / Nettenwerkschip| {{Hercules (1951)!!per}} | 1 |{{Hercules (1951)!!ships}}|
|''Cerberus''|Nettenwerkschip | {{Cerberus (1952)!!per}} | 1 |{{Cerberus (1952)!!ships}}|
|''Luymes''|Opnemingsvaartuig | {{Luymes (1952)!!per}} | 1 |{{Luymes (1952)!!ships}}|
|''US Baloa-klasse''|Duikboot | 1953-1971 | 2 |{{Walrus (1953)!!ships}}|
|''De Ruyter-klasse''|Kruiser | 1953-1975 | 2 |{{De Ruyter (1953)!!ships}}|
|''US Bluebird-klasse-klasse''|Mijnenveger | 1953-1976 | 14 |{{Beemster (1953)!!ships}}|
|''Holland-klasse''|Onderzeebootjager | 1954-1979 | 4 |{{Holland (1954)!!ships}}|
|''US Agressive-klasse''|Mijnenveger / Escorteschip| 1954-1982 | 6 |{{Onversaagd (1955)!!ships}}|
|''Balder-klasse''|Patrouilleschip | 1954-1986 | 5 |{{Balder (1954)!!ships}}|
|''US PCE-842-klasse''|Fregat | 1954-1988 | 6 |{{Wolf (1954)!!ships}}|
|''Britse Ton-klasse''|Mijnenveger | 1955-1994 | 18 |{{Dokkum (1955)!!ships}}|
|''Britse Ton-klasse''|Mijnenveger | 1955-1973 | 14 |{{Wildervank (1955)!!ships}}|
|''Italiaanse Albatros-klasse''|Fregat| {{Lynx (1956)!!per}} | 1 |{{Lynx (1956)!!ships}}|
|''Friesland-klasse''|Onderzeebootjager | 1956-1982 | 8 |{{Friesland (1956)!!ships}}|
|''Van Straelen-klasse''|Mijnenveger | 1960-1985 | 16 |{{Van Straelen (1960)!!ships}}|
|''Dolfijn-klasse''|Duikboot | 1960-1990 | 2 |{{Dolfijn (1960)!!ships}}|
|''Potvis-klasse''|Duikboot | 1961-1994 | 2 |{{Potvis (1965)!!ships}}|
|''Van Bochove''|Torpedo-inschietvaartuig / communicatievaartuig| {{Van Bochove (1962)!!per}} | 1 |{{Van Bochove (1962)!!ships}}|
|''Triton-klasse''|Duikvaartuig | 1964-1992 | 3 |{{Triton (1964)!!ships}}|
|''Poolster''|Ondersteuningsschip | {{Poolster (1964)!!per}} | 1 |{{Poolster (1964)!!ships}}|
|''Van Speijk-klasse''|Fregat | 1967-1990 | 6 |[[Evertsen (1967)]] [{{Van Speijk (1967)!!ships}}|
|''Zwaardvis-klasse''|Duikboot| 1972-1995 | 2 |{{Zwaardvis (1972)!!ships}}|
|''Buyskes-klasse''|Opnemingsvaartuig | 1973-003 | 2 |{{Buyskes (1973)!!ships}}|
|''Tromp-klasse''|Fregat | 1975-2001 | 2 |{{Tromp (1975)!!ships}}|
|''Zuiderkruis''|Ondersteuningsschip | {{Zuiderkruis (1975)!!per}} | 1 |{{Zuiderkruis (1975)!!ships}}|
|''Tydeman''|Oceanografisch onderzoeksvaartuig | {{Tydeman (1976)!!per}} | 1 |{{Tydeman (1976)!!ships}}|
|''Kortenaer-klasse''|Fregat | 1978-2004 | (12)/10 |{{Kortenaer (1978)!!ships}}|
|''Alkmaar-klasse''|Mijnenjager | 1983- | 15 |{{Alkmaar (1983)!!ships}}|
|''Jacob van Heemskerck-klasse''|Fregat | 1986-2006 | 2 |{{Jacob van Heemskerck (1986)!!ships}}|
|''Mercuur''|Torpedowerkschip | {{Mercuur (1987)!!per}} | 1 |{{Mercuur (1987)!!ships}}|
|''Walrus-klasse''|Duikboot | 1990- | 4 |{{Walrus (1992)!!ships}}|
|''Karel Doorman-klasse''|Fregat | 1991- | 8 |{{Karel Doorman (1991)!!ships}}|
|''Cerberus-klasse''|Duikvaartuig | 1992- | 4 |{{Cerberus (1992)!!ships}}|
|''Amsterdam''|Ondersteuningsschip | {{Amsterdam (1995)!!per}} | 1 |{{Amsterdam (1995)!!ships}}|
|''Rotterdam''|Ondersteuningsschip | {{Rotterdam (1998)!!per}} | 1 |{{Rotterdam (1998)!!ships}}|
|''Van Kinsbergen''|Opleidingsschip | {{Van Kinsbergen (1999)!!per}} | 1 |{{Van Kinsbergen (1999)!!ships}}|
|''Stan Patrol 4100-klasse''|Patrouillevaartuig / kustwachtkotter| 1999- | 3 |{{Jaguar (1999)!!ships}}|
|''De Zeven Provinciën-klasse''|Fregat | 2002- | 4 |{{De Zeven Provinciën (2002)!!ships}}|
|''Snellius-klasse''|Opnemingsvaartuig | 2003- | 2 |{{Snellius (2003)!!ships}}|
|''Urania''|Opleidingsschip | {{Urania (2004)!!per}} | 1 |{{Urania (2004)!!ships}}|
|''Pelikaan''|Ondersteuningsschip | {{Pelikaan (2006)!!per}} | 1 |{{Pelikaan (2006)!!ships}}|
|''Johan de Witt''|Ondersteuningsschip | {{Johan de Witt (2007)!!per}} | 1 |{{Johan de Witt (2007)!!ships}}|
|''Holland-klasse''|Patrouilleschip | 2012- | 4 |{{Holland (2012)!!ships}}|
|''Karel Doorman''|Ondersteuningsschip | {{Karel Doorman (2015)!!per}} | 1 |{{Karel Doorman (2015)!!ships}}|
||||||
{{Scheepsklassen_footer}}
!!!! Scheepsklassen van de Nederlandse marine voor 1900
Deze lijst begint rond 1860 met de overgang van hout naar ijzer/staal als constructiemateriaal voor schepen.
| Voor 1900 |<|<|<|<|h
|''Klasse/prototype''|''Type''|''Dienstperiode'' ^^1^^ |''Aantal'' ^^2^^ |''Schepen in klasse''|h
|''Prins Hendrik der Nederlanden''|ironclad ramtorenschip| {{Prins Hendrik der Nederlanden (1867)!!per}} | 1 |{{Prins Hendrik der Nederlanden (1867)!!ships}}|
|''Buffel-klasse''|Ironclad ramtorenschip| 1868-1896 | 2 |{{Buffel (1868)!!ships}}|
|''Schorpioen-klasse''|Ironclad ramtorenschip| 1868-1908 | 2 |{{Schorpioen (1868)!!ships}}|
|''Heiligerlee-klasse''|Monitor 2e klasse| 1868-1909 | 3 |{{Heiligerlee (1868)!!ships}}|
|''Vahalis''|Kanonneerboot| {{Vahalis (1870)!!per}} | 1 |{{Vahalis (1870)!!ships}}|
|''Bloedhond-klasse''|Monitor 2e klasse| 1870-1907 | 2 |{{Bloedhond (1870)!!ships}}|
|''Panter-klasse''|Monitor 2e klasse| 1871-1907 | 6 |{{Panter (1870)!!ships}}|
|''Hydra-klasse''|Kanonneerboot| 1872-1925 | 14 |{{Hydra (1873)!!ships}}|
|''Aruba''|Schroefstoomschip 4e klasse| {{Aruba (1873)!!per}} | 1 |{{Aruba (1873)!!ships}}|
|''Alkmaar''|schroefstoomschip 3e klasse| {{Alkmaar (1874)!!per}} | 1 |{{Alkmaar (1874)!!ships}}|
|''I-klasse''|Torpedoboot| 1876-1905 | 9 |{{I (1876)!!ships}}|
|''Batavia-klasse''|Schroefstoomschip 4e klasse| 1876-1906 | 8 |{{Batavia (1877)!!ships}}|
|''Isala-klasse''|Kanonneerboot| 1876-1913 | 4 |{{Isala (1876)!!ships}}|
|''Koning der Nederlanden''|Ironclad ramtorenschip| {{Koning der Nederlanden (1877)!!per}} | 1 |{{Koning der Nederlanden (1877)!!ships}}|
|''Suriname''|Schroefstoomschip 4e klasse| {{Suriname (1877)!!per}} | 1 |{{Suriname (1877)!!ships}}|
|''Thor-klasse''|Kanonneerboot| 1877-1940 | 16 |{{Thor (1877)!!ships}}|
|''Atjeh-klasse''|Schroefstoomschip 1e klasse| 1877-1908 | 6 |{{Atjeh (1877)!!ships}}|
|''Draak''|Monitor 1e klasse| {{Draak (1878)!!per}} | 1 |{{Draak (1878)!!ships}}|
|''Matador''|Monitor 1e klasse| {{Matador (1879)!!per}} | 1 |{{Matador (1879)!!ships}}|
|''X-klasse''|Torpedoboot| 1879-1915 | 11 |{{X (1879)!!ships}}|
|''Sommelsdijk''|Schroefstoomschip 4e klasse| {{Sommelsdijk (1884)!!per}} | 1 |{{Sommelsdijk (1884)!!ships}}|
|''Java''|Schroefstoomschip 4e klasse| {{Java (1886)!!per}} | 1 |{{Java (1886)!!ships}}|
|''Ceram-klasse''|Schroefstoomschip 4e klasse| 1887-1907 | 2 |{{Ceram (1887)!!ships}}|
|''Ardjoeno-klasse''|Torpedoboot| 1887-1919 | 11 |{{Ardjoeno (1887)!!ships}}|
|''Mercuur''|Torpedowerkschip| {{Mercuur (1888)!!per}} | 1 |{{Mercuur (1888)!!ships}}|
|''Sumatra''|Pantserdekschip| {{Sumatra (1891)!!per}} | 1 |{{Sumatra (1891)!!ships}}|
|''Lombok-klasse''|Schroefstoomschip 4e klasse| 1891-1911 | 2 |{{Lombok (1891)!!ships}}|
|''Etna-klasse''|Torpedoboot| 1891-1913 | 2 |{{Etna (1892)!!ships}}|
|''Jan Haring-klasse''|Torpedoboot| 1891-1914 | 3 |{{Jan Haring (1891)!!ships}}|
|''Lamongan-klasse''|Torpedoboot| 1891-1919 | 3 |{{Lamongan (1891)!!ships}}|
|''Borneo''|Schroefstoomschip 4e klasse| {{Borneo (1892)!!per}} | 1 |{{Borneo (1892)!!ships}}|
|''Koningin Wilhelmina der Nederlanden''|Pantserdekschip| {{Koningin Wilhelmina der Nederlanden (1894)!!per}} | 1 |{{Koningin Wilhelmina der Nederlanden (1894)!!ships}}|
|''Reinier Claeszen''|Monitor| {{Reinier Claeszen (1894)!!per}} | 1 |{{Reinier Claeszen (1894)!!ships}}|
|''Evertsen-klasse''|Pantserschip| 1895-1920 | 3 |{{Evertsen (1896)!!ships}}|
|''Nias-klasse''|Schroefstoomschip 4e klasse| 1896-1921 | 4 |{{Nias (1895)!!ships}}|
|''Holland-klasse''|Pantserdekschip| 1898-1925 | 6 |{{Holland (1898)!!ships}}|
|''Koetei-klasse''|Schroefstoomschip 4e klasse| 1898-1931 | 3 |{{Koetei (1898)!!ships}}|
{{Scheepsklassen_footer}}
|borderless|k
|^^^1^^| |In ''actieve'' Nederlandse dienst; zoals ontworpen (of opgewaardeerd).<br>''N.B.'' Gemilitariseerde schepen van de Gouvernemntsmarine gewoonlijk 1939 - 1942.<br>De dienstperiode geldt voor de totale klasse: begin dienstperiode bij ''eerste'' schip in klasse, einde bij ''laatste'' schip in klasse.|
||||
||||
|^^^2^^||''(X)/Y'' => ''X'' gepland/besteld, ''Y'' uiteindelijk in Nederlandse dienst.|
!! Scheepstypen (incl. historische typen)
* <<slider Duikboot Duikboot>>
* <<slider Duikvaartuig Duikvaartuig>>
* <<slider Escorteschip Escorteschip>>
* <<slider Fregat Fregat>>
* <<slider Hulpschip Ondersteuningsschip>>
* <<slider Kanonneerboot Kanonneerboot>>
* <<slider Korvet Korvet>>
* <<slider Kruiser Kruiser>>
* <<slider Logementsschip Logementsschip>>
* <<slider Mijnenlegger Mijnenlegger>>
* <<slider Mijnenjager Mijnenjager>>
* <<slider Mijnenveger Mijnenveger>>
* <<slider Monitor Monitor>>
* <<slider "Oceanografisch onderzoeksvaartuig" "Oceanografisch onderzoeksvaartuig">>
* <<slider Ondersteuningsschip Ondersteuningsschip>>
* <<slider Onderzeebootjager Onderzeebootjager>>
* <<slider Opleidingsschip Opleidingsschip>>
* <<slider Opnemingsvaartuig Opnemingsvaartuig>>
* <<slider Pantserdekkorvet Pantserdekkorvet>>
* <<slider Pantserdekschip Pantserdekschip>>
* <<slider Pantserkruiser Pantserkruiser>>
* <<slider Pantserschip Pantserschip>>
* <<slider Patrouilleschip Patrouilleschip>>
* <<slider Ramtorenschip Ramtorenschip>>
* <<slider Schroefstoomschip Schroefstoomschip>>
* <<slider Slagkruiser Slagkruiser>>
* <<slider Slagschip Slagschip>>
* <<slider Torpedoboot Torpedoboot>>
* <<slider Torpedobootjager Torpedobootjager>>
* <<slider Torpedomotorboot Torpedomotorboot>>
* <<slider Torpedowerkschip Torpedowerkschip>>
* <<slider Vliegdekschip Vliegdekschip>>
<<<
''N.B.:''<br>Het [[Vlootverdrag van Washington (1922)|https://nl.wikipedia.org/wiki/Verdrag_van_Washington]] legde de maximale tonnage van oorlogsschepen vast (voor de Verenigde Staten, het Verenigd Koninkrijk, Japan, Frankrijk en Italië). Tevens werden eisen qua tonnage en bewapening voor slagschepen/slagkruisers/vliegdekschepen vastgelegd.<br>
Het [[Verdrag van Londen (1930)|https://nl.wikipedia.org/wiki/Verdrag_van_Londen_%281930%29]] legde verdere eisen voor kruisers/torpedobootjagers en onderzeeboten vast.<br>
In 1937/1938 kondigden Japan en Italië aan dat zij de vlootverdragen niet meer zouden nakomen waardoor deze verdragen vervielen.
<<<
<<imageh 1907_Atlas_Kok_Noordzeekanaal_baggerbergplaats.jpg 400>>
//Op een kaart van het Noordzeekanaal (Atlas Kok) is de baggerbergplaats te zien; het Zeeburgereiland bestaat nog niet echt, 1907.//
<<imageh 19xx_Luchthaven_Schelligwoude01.jpg 400>>
//Marinevliegkamp Schellingwoude met 8 aldaar gedetacheerde <<popup "Van Berkel" "Van Berkel">> W-A vliegtuigen, dit i.v.m. bezoek van het USS Arkansas aan Amsterdam, 1924.//
<<imageh 1939_ca_Kaart_Amsterdam_luchthaven.jpg 400>>
//De luchthaven Schellingwoude op een plattegrond van Amsterdam uit 1939.<br>
Niet te missen die luchthaven!//
<<imageh 1940_ca_Kaart_Vliegveld_Schellingwoude.jpg 400>>
//Kaart van Amsterdam; Zeeburgereiland met de luchthaven Schellingwoude, ca. 1943.//
<<imageh 1943_MVK_Schellingwoude_RAF_luchtfoto.jpg 400>>
//RAF luchtfoto van de luchthaven Schellingwoude, 1943.<br>
Linksboven de Oranjesluizen.//
<<imageh 1917_ca_Vliegkamp_Schellingwoude.jpg 380>>
//Vliegkamp Schellingwoude, ca. 1921.//
<<imageh 1938_Gids_Schellingwoude_01.jpg 380>>
//Gids voor Luchtvarenden Nederland, 1938.//
<<imageh 1938_Gids_Schellingwoude_02.jpg 380>>
//Gids voor Luchtvarenden Nederland, 1938.//
<<imageh 1938_Gids_Schellingwoude_03.jpg 380>>
//Gids voor Luchtvarenden Nederland, 1938.//
<<imageh 1938_Gids_Schellingwoude_04.jpg 380>>
//Gids voor Luchtvarenden Nederland, 1938.//
<<imageh 1938_MVK_Schellingwoude.jpg 400>>
//Marinevliegkamp Schellingwoude, 1938.//
<<imageh Schema_rondreis_Dornier_Do-X.jpg 400>>
\define llinks(filter)
<$list filter="$filter$">
<tr>
<td>
<$view field="per"/>
</td>
<td><$link to={{!!title}}>
<$view field="title"/>
</$link>
</td>
<td>
<$view field="soort"/>
</td>
<td>
<<listlinks "[list[!!ships]]+[search:text[slider]]">>
</td>
</tr>
</$list>
\end
<style>
th {
text-align: left;
}
</style>
!! Alle marineschepen chronologisch
{{Actieve Nederlandse dienst}}
<table>
<tr>
<th>Dienstperiode </th>
<th>Naam schip </th>
<th>Soort schip </th>
<th>Schepen uit klasse met foto</th>
</tr>
<<llinks "[tag[schipdata]sort[per]]-$:/_ship_details_template -$:/temp/search">>
</table>
!! Marineschepen op naam
<<tabs "[tag[schepen]sort[caption]]" "" "" "tc-vertical">>
<<tabs "[tag[pennant]]">>
<<imageh "1935_ca_Amsterdam_Duikboten_1.jpg" 400>>
//Amsterdam, <<mouseover duikboten Duikboot>> van de O12 klasse, [[O13 (1931)]] & [[O14 (1932)]], 1936.//
<<imageh 1935_ca_Amsterdam_Duikboten_2.jpg 400>>
//Amsterdam, <<mouseover duikboten Duikboot>> van de O9 klasse, [[O9 (1926)]], [[O10 (1926)]] & [[O11 (1926)]], 1936.//
<<imageh 1907_IJ_kanonneerboot_Zr_Ms_Ever_J_L_Scherpenisse_1.jpg 400>>
//IJ met <<mouseover kanonneerboot Kanonneerboot>> [[Ever (1873)]] (actief tot 1884, daarna excertitievaartuig). J.L. Scherpenisse, 1907.//
<<imageh 1907_IJ_kanonneerboot_Zr_Ms_Ever_J_L_Scherpenisse_2.jpg 400>>
//IJ met <<mouseover kanonneerboot Kanonneerboot>> [[Ever (1873)]] (actief tot 1884, daarna excertitievaartuig). J.L. Scherpenisse, 1907.<br>
Op de achtergrond het station van de Noord-Hollandse Tramweg Maatschappij aan de Adelaarsweg.//
<<imageh 1909_IJ_3_marineschepen_J_L_Scherpenisse.jpg 400>>
//<<mouseover Pantserschepen Pantserschip>> [[Piet Hein (1896)]], [[Evertsen (1896)]] en [[Jacob van Heemskerck (1908)]] (v.l.n.r.) in het IJ. J.L. Scherpenisse, 1909.//
<<imageh 1911_Frans_oorlogsschip_Richelieu_voor_de_sloop_in_Amsterdam.jpg 400>>
//Frans oorlogsschip Richelieu wordt gesloopt in Amsterdam, 1911.//
<<imageh 1907_IJ_kanonneerboot_Zr_Ms_Ever_J_L_Scherpenisse_3.jpg 400>>
//IJ met <<mouseover stoomkanonneerboot Kanonneerboot>> [[Ever (1873)]] (actief tot 1884, daarna excertitievaartuig). J.L. Scherpenisse, 1907.//
<<imageh 1917_Torpedoboot_Z4_wordt_gebouwd_bij_Nederlandsche_Scheepsbouwmaatschappij.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Z4 (1920)]] wordt gebouwd bij de Nederlandsche Scheepsbouwmaatschappij, 1917.//
<<imageh 1929_Oorlogsschip.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Kortenaer (1928)]] (KN), Amsterdam, 1929.<br>Rechts het station van de NHTM aan de Adelaarsweg.//
<<imageh 1899_De_Ruijterkade_kanonneerboot_Zr_MS_Ever_Jacob_Olie.jpg 400>>
//De Ruijterkade met <<mouseover kanonneerboot Kanonneerboot>> [[Ever (1873)]]. Jacob Olie, 1899.//
<<imageh 1935_Oorlogsschepen.jpg 400>>
//Amsterdam, oorlogsschepen (torpedobootjagers?), 1935.//
<<imageh 1891_IJ_Pantserdekkorvet_Hr_Ms_Sumatra_Jacob_Olie_2.jpg 400>>
//IJ met <<mouseover pantserdekschip Pantserdekschip>> [[Sumatra (1891)]]. Jacob Olie, 1891.//
<<imageh 1938_Oorlogsschepen.jpg 400>>
//<<mouseover Mijnenvegers Mijnenveger>> [[Abraham van der Hulst (1937)]] (H), [[Jan van Gelder (1937)]] (G) en - waarschijnlijk - [[Pieter Florisz (1937)]] (F), 1938.//
<<imageh 1946_Willem_Barendsz_G_v_d_Werff.jpg 400>>
//De Willem Barendsz. G. v.d. Werff, 1946.//
<<imageh 1893_IJ_Kop_Oostelijke_Handelskade_pantserdekkorvet_Koningin_Wilhelmina_der_Ned_Jacob_Olie.jpg 400>>
//<<mouseover Pantserdekschip Pantserdekschip>> [[Koningin Wilhelmina der Nederlanden (1894)]] aan de kop van de Oostelijke Handelskade. Jacob Olie, 1893.//
<<imageh 1966_Vloot_flottielje_Dick_Coersen.jpg 400>>
//Flottielje.<br>Dick Coersen, 1966.//
<<imageh 1895_Aalsmeer_militaire_oefening_Jacob_Olie.jpg 400>>
//Aalsmeer, militaire oefening. Jacob Olie, 1895.//
<<imageh 1928_ca_IJ_met_torpedoboten_Z5_en_Z6.jpg 400>>
//IJ met <<mouseover Torpedoboten Torpedoboot>> [[Z5 (1917)]] en [[Z6 (1917)]], ca. 1928.//
<<imageh 1893_IJ_Kop_Oostelijke_Handelskade_pantserdekkorvet_Koningin_Wilhelmina_der_Ned_Jacob_Olie_3.jpg 400>>
//<<mouseover Pantserdekschip Pantserdekschip>> [[Koningin Wilhelmina der Nederlanden (1894)]] aan de kop van de Oostelijke Handelskade. Jacob Olie, 1893.<br>
Rechts het KNMI-gebouw.//
<<imageh 1906-1913_Instructievaartuig_Vooruit_1906-1913_ex_Loodskotter_17_met_Hr_Ms_Brak.jpg 400>>
//Voorns kanaal, Hellevoetsluis met <<mouseover stoomkanoneerboot Kanonneerboot>> [[Brak (1875)]] naast instructievaartuig 'Vooruit' (ex Loodskotter #17), 1910.//
<<imageh 1890_ca_Brak_3.jpg 400>>
//<<mouseover Stoomkanonneerboot Kanonneerboot>> [[Brak (1875)]], ca. 1890.//
<<imageh 1912_Oostelijke_Handelskade_Wilhelmina_op_H_M_Heemskerk_2.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[Jacob van Heemskerck (1908)]], gelegen aan de Oostelijke Handelskade, 1912.//
<<imageh 1912_Oostelijke_Handelskade_Wilhelmina_op_H_M_Heemskerk.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[Jacob van Heemskerck (1908)]], gelegen aan de Oostelijke Handelskade.<br>
Gezien naar de 'Hogedruk Watertoren' voor kranen, 1912.//
<<imageh 1929_Oorlogsschip_de_Kortenaer.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Kortenaer (1928)]] (KN), 1929.//
<<imageh 1911_Oosterdok_Evertsen_Heemskerck_Bernard_Eilers.jpg 400>>
//Oosterdok met <<mouseover pantserschepen Pantserschip>> [[Evertsen (1896)]] en [[Jacob van Heemskerck (1908)]] (rechts). Bernard Eilers, 1911.//
<<imageh 1911_Oosterdok_Evertsen_Heemskerck_Piet_Hein_vrnl_Bernard_Eilers_2.jpg 400>>
//Oosterdok met (v.l.n.r.) <<mouseover pantserschepen Pantserschip>> [[Piet Hein (1896)]], [[Evertsen (1896)]] en [[Jacob van Heemskerck (1908)]]. Bernard Eilers, 1911.//
<<imageh 1911_Heemskerck_Evertsen_Piet_Hein_Bernard_Eilers.jpg 400>>
//Oosterdok met v.l.n.r. <<mouseover pantserschepen Pantserschip>> [[Jacob van Heemskerck (1908)]], [[Evertsen (1896)]] en [[Piet Hein (1896)]]. Bernard Eilers, 1911.//
<<imageh 1909_Oosterdok_Heemskerck_Evertsen_Piet_Hein_vlnr.jpg 400>>
//Oosterdok met v.l.n.r. <<mouseover pantserschepen Pantserschip>> [[Piet Hein (1896)]], [[Evertsen (1896)]] en [[Jacob van Heemskerck (1908)]], 1909.//
<<imageh 1900_ca_Oosterdok_met_oorlogsschip_bij_Marine_Etablissement.jpg 400>>
//Oosterdok met oorlogsschip bij het Marine-Etablissement, ca. 1900.<br>
De kaart vermeldt 'torpedoboot', m.i. een <<mouseover pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> zoals de <<slider Guinea. Schepen32>>//
<<imageh 1910_De_Zeven_Provinciën_Het_Leven.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[De Zeven Provinciën (1910)]]. Het Leven, 1910.//
<<imageh 1890-1900_IJ_rechts_station_NHTM_B_W_Stomps.jpg 400>>
//IJ met <<mouseover pantserschip Pantserschip>> van de Evertsenklasse en rechts het station van de NHTM. B.W. Stomps, ca. 1895.//
<<imageh 1891_ca_Oorlogsschip_De_Guinea_ingevroren.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Guinea (1870)]] ingevroren, ca. 1891.//
<<imageh 1934_Hertog_Hendrik.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[Hertog Hendrik (1904)]], 1934.//
<<imageh 1909_Den_Helder_pantserschip_Kortenaer_Het_Leven.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[Kortenaer (1895)]]. Het Leven, 1909.//
<<imageh 1925_ca_HNLMS_Noord-Brabant.jpg 400>>
//<<mouseover Pantserdekschip Pantserdekschip>> [[Noordbrabant (1900)]], hier na verbouwing tot logementschip. Ca. 1925.//
<<imageh 1939_Duikboot_O20.jpg 400>>
//De nieuwe diesel-electrische <<mouseover duikboot Duikboot>> [[O20 (1939)]] bij de overdracht aan de Nederlandse marine. Schiedam, 1939.//
<<imageh 1935_Schiedam_afbouw_De_Ruyter_J_D_Noske.jpg 400>>
//<<mouseover Kruiser Kruiser>> [[De Ruyter (1936)]] in aanbouw. Schiedam, J.D. Noske, 1935.//
<<imageh 1931_Den_Helder_Gelderland_van_Bilsen.jpg 400>>
//Den Helder, <<mouseover pantserdekschip Pantserdekschip>> [[Gelderland (1900)]], van Bilsen, 1931.//
<<imageh 1920_Den_Helder_Zeven_Provinciën_torpedoboot_model_K_Het_Leven.jpg 400>>
//Bij Den Helder (Het Leven), 1920://
* //<<mouseover pantserschip Pantserschip>> [[De Zeven Provinciën (1910)]]//
* //een model K <<mouseover torpedoboot Torpedoboot>>.//
<<imageh 1917_Ned_Scheepsbouwmaatschappij_tewaterlating_torpedoboten_Z3_Z4_Het_Leven.jpg 400>>
//Tewaterlating van <<mouseover torpedoboten Torpedoboot>> [[Z3 (1920)]] en [[Z4 (1920)]] bij de Nederlandse Scheepsbouwmaatschappij te Amsterdam. Het Leven, 1917.//
<<imageh 2009_Den_Helder_Schorpioen.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Schorpioen (1868)]] (1868 - 1906), nu als museumschip in Den Helder, 2009.<br>
[[Publiek domein, Arch|https://commons.wikimedia.org/w/index.php?curid=7823970]]//
<<imageh 2008_Museumschip-Buffel-bij-het-Maritiem-Museum-Rotterdam.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Buffel (1868)]] (1868-1896) als museumschip bij het Maritiem Museum te Rotterdam, 2008.<br>
Sinds oktober 2013 ligt de Buffel in Hellevoetsluis.//
<<imageh 2011_Museumschip_Zr_Ms_Buffel_bij_nacht_Rdam.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Buffel (1868)]] (1868-1896) als museumschip bij het Maritiem Museum te Rotterdam, 2008.<br>
Sinds oktober 2013 ligt de Buffel in Hellevoetsluis.<br>
[[CC BY-SA 2.5, Quistnix|https://commons.wikimedia.org/w/index.php?curid=5232124]]//
<<imageh 1936_Schiedam_De_Ruyter_Van_Bilsen.jpg 400>>
//Schiedam, (lichte) <<mouseover kruiser Kruiser>> [[De Ruyter (1936)]]. Schiedam, Van Bilsen, 1936.//
<<imageh 1936_Schiedam_De_Ruyter_van_Bilsen_2.jpg 400>>
//Schiedam, (lichte) <<mouseover kruiser Kruiser>> [[De Ruyter (1936)]]. Schiedam, Van Bilsen, 1936.//
<<imageh 1911_Hr_Ms_Gelderland_Het_Leven.jpg 400>>
//<<mouseover Pantserdekschip Pantserdekschip>> [[Gelderland (1900)]]. Het Leven, 1911.//
<<imageh 1894_ca_Panorama_Oosterdok_vanuit_KNMI_gebouw.jpg 400>>
//Oosterdok met een aantal <<mouseover stoomkanonneerboten Kanonneerboot>>, gezien vanuit het KNMI-gebouw. G.H. Heinen, ca. 1894.//
<<imageh 1898_IJ_Zeeland_Ardjoeno.jpg 400>>
//IJ met <<mouseover pantserdekschepen Pantserdekschip>> [[Zeeland (1898)]] (rechts) en [[Holland (1898)]] (links). G. Suyver, 1898.<br>
Tevens <<mouseover torpedoboten Torpedoboot>> [[Ardjoeno (1887)]] en [[Empong (1890)]], <br>
Met vlaggen versierd i.v.m. inhuldiging Koningin Wilhelmina.//
<<imageh 1910-1933_De_Zeven_Provinciën_Het_Leven_1.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[De Zeven Provinciën (1910)]]. Het Leven, ca. 1921.//
<<imageh 1910-1933_De_Zeven_Provinciën_Het_Leven_2.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[De Zeven Provinciën (1910)]] in de straat van Malakka, met erboven een Van Berkel W-A watervliegtuig. Het Leven, ca. 1921.//
<<imageh 1933_muiterij_De_Zeven_Provinciën.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[De Zeven Provinciën (1910)]] - per ongeluk? - gebombardeerd na muiterij, 1933.//
<<imageh 1910_Pantserschip_Hr_Ms_De_Zeven_Provinciën.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[De Zeven Provinciën (1910)]], 1910.//
<<imageh 1946_Hoek_v_Holland_Karel_Doorman_G_v_d_Werff.jpg 400>>
//Hoek van Holland, <<mouseover vliegdekschip Vliegdekschip>> [[Karel Doorman (1946)]] (QH 1), 1946.<br>
© G. v.d. Werff//
<<imageh 1936_Den_Helder_O13_Het_Leven.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O13 (1931)]]. Den Helder (Het Leven), 1936.//
<<imageh 1936_DenHelder_O13_Wiel_van_der_Randen.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O13 (1931)]]. Den Helder (Wiel van der Randen), 1936.//
<<imageh 1939_Amsterdam_duikboot.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O16 (1936)]], 1939.//
<<imageh 1923_Amsterdam_duikboten.jpg 400>>
//Twee <<mouseover duikboten Duikboot>>, de [[O5 (1914)]] en [[O6 (1916)]] op een oefentocht onderweg, liggen in de haven van Amsterdam. Februari 1923.//
<<imageh 1940-03-18_Rotterdam_tewaterlating_duikboot_O24.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O24 (1940)]] bij de tewaterlating in Rotterdam, 18 maart 1940.<br>
In de meidagen - onafgebouwd - naar Engeland ontsnapt.<br>
Aan boord luitenant ter zee der 2^^e^^ klasse <<mouseover "Piet de Jong" "Piet de Jong_info">>, de latere premier.<br>
De O24 is in Engeland afgebouwd.//
<<imageh 1955-1960_Willem_Barendsz_Ruud_Harteveld.jpg 400>>
//De Willem Barendsz II. Ruud Harteveld, ca. 1957.//
<<imageh 1926_IJ_onderzeeboot_O_10.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O10 (1926)]] in het IJ, 1926.//
<<imageh 1941_O_21_haven_van_Gribalter.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O21 (1940)]] in de haven van Gibraltar, 1941.<br>
[[Publiek domein|https://commons.wikimedia.org/w/index.php?curid=2191421]]//
<<imageh 1926_Noordzee_Onderzeeboot_O10.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O10 (1926)]] op de Noordzee, 1926.//
<<imageh 1938_Rotterdam_O13_O11_O15_VanMeerlant_Brinio.jpg 400>>
//Rotterdam, 1938://
* //<<mouseover duikboten Duikboot>> [[O13 (1931)]], [[O11 (1926)]] en [[O15 (1932)]]//
* //<<mouseover mijnenlegger Mijnenlegger>> [[Van Meerlant (1922)]]//
* //<<mouseover kanonneerboot Kanonneerboot>> [[Brinio (1914)]].//
<<imageh 1886-1916_Zr_Ms_vistorpedoboot_Ardjoeno.jpg 400>>
//<<mouseover Vistorpedoboot Torpedoboot>> [[Ardjoeno (1887)]], ca. 1900.//
<<imageh 1924_Torpedoboot_Hr_Ms_Z5.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Z5 (1917)]], 1924.//
<<imageh 1944_Kanonneerboot_Hr_Ms_Van_Kinsbergen.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Van Kinsbergen|Van Kinsbergen (1939)]] (K425), 1944.<br>
© [[Collection National Archives|https://commons.wikimedia.org/w/index.php?curid=16987187]]//
<<imageh 1948-1968_Hr_Ms_vliegkampschip_Karel_Doorman_5.jpg 400>>
//<<mouseover Vliegdekschip Vliegdekschip>> [[Karel Doorman (1948)]] (R 81), ca. 1960.//
<<imageh 1926_New_York_Hr_Ms_Sumatra_Het_Leven.jpg 400>>
//<<mouseover Kruiser Kruiser>> [[Sumatra (1926)]]. Het Leven, 1926.//
<<imageh 1937_Rotterdam_Hr_Ms_Gelderland.jpg 400>>
//Rotterdam, <<mouseover pantserdekschip Pantserdekschip>> [[Gelderland (1900)]], 1937.//
<<imageh 1953_Afgesloten_IJ_Willem_Barendsz_station_NHTM.jpg 400>>
//Afgesloten IJ, aankomst Willem Barendsz, 1953.//
<<imageh 1911_ca_Noordzeekanaal_pantserkruiser_Edgar_Quinet.jpg 400>>
//Noordzeekanaal, gezien in oostelijke richting vanaf Hembrug.<br>Franse <<mouseover pantserkruiser Pantserkruiser>> Edgar Quinet met aan boord president Fallieres, 1911.//
<<imageh 1891_IJ_Pantserdekkorvet_Hr_Ms_Sumatra_Jacob_Olie.jpg 400>>
//IJ met <<mouseover pantserdekschip Pantserdekschip>> [[Sumatra (1891)]]. Jacob Olie, 1891.//
<<imageh 1892_De_Ruijterkade_H_M_Monitor_Tijger_Jacob_Olie.jpg 400>>
//De Ruijterkade met <<mouseover monitor Monitor >> [[Tijger (1869)]]. Jacob Olie, 1892.//
<<imageh 1928-1931_torpedobootjager_Hr_Ms_De_Ruyter.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[De Ruyter (1928)]] (DR), ca. 1929.<br>
De Ruyter in 1931 omgedoopt in Van Ghent (vanwege de bouw van een nieuwe kruiser met de naam De Ruyter).//
<<imageh 1925_kruiser_Hr_Ms_Java_Sydney.jpg 400>>
//(Lichte) <<mouseover kruiser Kruiser>> [[Java (1925)]] afgemeerd in Sydney in 1930.<br>Daarachter de <<mouseover torpedobootjagers Torpedobootjager>> [[De Ruyter (1928)]] (in 1931 omgedoopt tot Van Ghent) en [[Evertsen (1929)]].<br>Met op de achtergrond Sydney Harbour Bridge.//
<<imageh 1942_Javazee_De_Ruyter.jpg 400>>
//Javazee, (lichte) <<mouseover kruiser Kruiser>> [[De Ruyter (1936)]], 1942.//
<<imageh 1888_Vlissingen_Hr_Ms_Cerberus.jpg 400>>
//Vlissingen, <<mouseover torpedoboot Torpedoboot>> [[Cerberus (1888)]], 1888.//
<<imageh 1928-1942_Torpedobootjager_Hr_Ms_Evertsen.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Evertsen (1929)]] (EV), ca. 1935.//
<<imageh 1889-1912_Batok.jpg 400>>
//<<mouseover Vistorpedoboot Torpedoboot>> [[Batok (1889)]], ca. 1900.//
<<imageh 1900-1917_Gelderland.jpg 400>>
//<<mouseover Pantserdekschip Pantserdekschip>> [[Gelderland (1900)]], ca. 1920.//
<<imageh 1898-1924_Pantserdekschip_Zeeland_R_H_Herwig.jpg 400>>
//<<mouseover Pantserdekschip Pantserdekschip>> [[Zeeland (1898)]], R.H. Herwig, Ca.1915.//
<<imageh 1930_Mijnenveger_Hr_Ms_A.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[A (1930)]], 1930.<br>
De A was de eerste Nederlandse mijnenveger die daadwerkelijk als mijnenveger werd gebouwd. Daarvoor waren het tot mijnenvegers omgebouwde sleepboten.//
<<imageh 1939_IJmuiden_mijnenleggger_Willem_van_der_Zaan.jpg 400>>
//IJmuiden, <<mouseover mijnenleggger Mijnenlegger>> [[Willem van der Zaan (1939)]], 1939.//
<<imageh 1955_M801_Dokkum.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Dokkum (1955)]] (M801) bij de officiële ingebruikname, 1955.<br>
De Dokkum is een van de schepen van de Dokkumklasse die tijdens de dienst bij de Nederlandse marine zijn omgebouwd tot <<mouseover mijnenjager Mijnenjager>>.
<<imageh 1902_ca_Hr_Ms_Java_Soerabaja.jpg 400>>
//Soerabaja, <<mouseover schroefstoomschip Schroefstoomschip>> [[Java (1886)]], ca. 1902.//
<<imageh 1935_Madeira_Funchal_K_XVIII.jpg 400>>
//De 'koloniale' Nederlandse diesel-electrische <<mouseover duikboot Duikboot>> [[KXVIII (1934)]] tijdens haar wereldreis in 1935 die van Den Helder via Pernambuco, Montevideo, Kaapstad, Fremantle naar Soerabaja voerde. Madeira, Funchal, 1935.//
<<imageh 1874_Monitor_Krokodil_liggend_in_Wolwevershaven.jpg 400>>
//<<mouseover Monitor Monitor>> [[Krokodil (1870)]], liggend in de Wolwevershaven van Dordrecht, 1874.<br>© [[Regionaal Archief Dordrecht|https://beeldbank.regionaalarchiefdordrecht.nl/index.cfm/search/detail/id/3C09A30F505693014BE91736D08D5255/showbrowse]]//
<<imageh 1912_Mijnenlegger_Hydra.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Hydra (1912)]], 1912.//
<<imageh 1962_Rdam_Hr_Ms_Karel_Doorman_G_v_d_Werff.jpg 400>>
//Rotterdam met <<mouseover vliegdekschip Vliegdekschip>> [[Karel Doorman (1948)]] (R 81).<br>G. v.d. Werff, 1962.//
<<imageh 1926-1940_Amsterdam_Brinio_Z8_O9.jpg 400>>
//Amsterdam://
* //<<mouseover kanonneerboot Kanonneerboot>> [[Brinio (1914)]]//
* //<<mouseover torpedoboot Torpedoboot>> [[Z8 (1916)]]//
* //<<mouseover duikboot Duikboot>> [[O9 (1926)]], ca. 1928.//
<<imageh 1877_Kanonneerboot_Wodan.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Wodan (1877)]], 1877.//
<<imageh 1930_ca_lichte_kruiser_Java.jpg 400>>
//(Lichte) <<mouseover kruiser Kruiser>> [[Java (1925)]], ca. 1930.//
<<imageh 1910_ca_Torpedoboot_Michiel_Gardeijn.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Michiel Gardeijn (1905)]], ca. 1910.//
<<imageh 1898_gunboat_Siboga.jpg 400>>
//<<mouseover Schroefstoomschip Schroefstoomschip>> [[Siboga (1898)]], 1898.<br>
[[Public domain|https://commons.wikimedia.org/wiki/File:Siboga,_gunboat_(1898).jpg]]//
<<imageh 1907_Vlissingen_Luctor_et_Emergo_O1.jpg 400>>
//De 'Luctor et Emergo', beter bekend als [[O1 (1906)]]. Vlissingen, 1907.<br>
De O1 was de eerste <<mouseover duikboot Duikboot>> van de Nederlandse marine. //
<<imageh 1911_Vlissingen_O2.jpg 400>>
//Vlissingen, <<mouseover duikboot Duikboot>> [[O2 (1911)]], 1911.//
<<imageh 19xx_O7.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O7 (1916)]], ca. 1928.//
<<imageh 1918_ca_M1.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[M1 (1917)]] (ex Duitse UC-8), ca. 1918.//
<<imageh 192y_O8.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O8 (1917)]], ca. 1929.//
<<imageh 1933_Soerabaja_KX_Java_Sumatra.jpg 400>>
//De <<mouseover duikboot Duikboot>> [[KX (1923)]] in Soerabaja, ca. 1930.<br>
Op de achtergrond de kruisers Sumatra en daarachter Java.//
<<imageh 1926-07-28_K-XIII_Panama_kanaal.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[KXIII (1926)]] in het Panamakanaal, 28-7-1926.//
<<imageh 1934_Soerabaja_duikboot_K_VII.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[KVII (1922)]]. Soerabaja, 1934.//
<<imageh HNLMS_K_IV.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[KIV (1921)]], ca. 1929.//
<<imageh 1916_K_I_aankomst_Tandjong_Priok.jpg 400>>
//Aankomst van de <<mouseover duikboot Duikboot>> [[KI (1914)]] te Tandjong Priok, 1916.//
<<imageh 1942_Dolfijn_in_buitenlandse_haven.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Dolfijn (1942)]] in een buitenlandse haven, 1942.//
<<imageh 1948_Onderzeeboot_Dolfijn_II.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Dolfijn (1948)]] (ex-Britse Taurus), 1948.<br>
© [[Koninklijke Marine|https://commons.wikimedia.org/w/index.php?curid=2188126]]//
<<imageh 1943-1945_Zeehond_ex-Sturgeon.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Zeehond (1943)]] (ex-Britse Sturgeon), ca. 1944.//
<<imageh 1953_Zeehond_ex-Tapir.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Zeehond (1944)]] (ex-Britse Tapir), 1953.//
<<imageh 1930_Den_Helder_O9_O10.jpg 400>>
//Den Helder, <<mouseover duikboten Duikboot>> [[O9 (1926)]] en [[O10 (1926)]], 1930.//
<<imageh 1925-1940_duikboot_K_XI_torpedoboot_Z3.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[KXI (1925)]] en daarachter <<mouseover torpedoboot Torpedoboot>> [[Z3 (1920)]], ca. 1937.//
<<imageh 19xx_kanonneerboot_Flores.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Flores (1926)]], ca. 1935.//
<<imageh 1959_F805_Van_Speijk.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Van Speijk (1946)]] (F805), 1959.//
<<imageh 1946_ca_Fremantle_kruiser_Jacob_van_Heemskerck.jpg 400>>
//Fremantle, lichte <<mouseover kruiser Kruiser>> [[Jacob van Heemskerck (1940)]], 1946//
<<imageh 1905_ca_pantserschip_Koningin_Regentes.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[Koningin Regentes (1902)]], ca. 1905.//
<<imageh 1914_ca_Pantserschip_De_Ruyter.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[De Ruyter (1902)]], ca. 1914//
<<imageh 1910_ca_Marten_Harpertszoon_Tromp.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[Marten Harpertsz. Tromp (1906)]], ca. 1910.<br>
''Officieel:'' 'Marten Harpertszoon Tromp' en ''niet'' 'Maarten Harpertszoon Tromp'!//
<<imageh 1945_Freemantle_kruiser_Tromp.jpg 400>>
//Freemantle, <<mouseover kruiser Kruiser>> [[Tromp (1938)]], 1945.//
<<imageh 1935_ca_Torpedobootjager_Piet_Hein.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Piet Hein (1929)]] (PH), ca. 1935.//
<<imageh 1930_ca_Torpedobootjager_Piet_Hein_full_speed.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Piet Hein (1929)]] op volle snelheid, ca. 1930.//
<<imageh 1958_ca_F804_Piet_Hein.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Piet Hein (1945)]], ca. 1958.//
<<imageh 1945_Piet_Hein_ex-Serapis.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Piet Hein (1945)]] (ex-Britse Serapis) nog met Britse registratie maar wel met Nederlandse vlag, 1945.//
<<imageh 1930_Hr_Ms_Soemba.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Soemba (1926)]], varend met genodigden, 1930.//
<<imageh 1929_Amsterdam_Z5_en_Z6.jpg 400>>
//Amsterdam, <<mouseover torpedoboten Torpedoboot>> [[Z5 (1917)]] en [[Z6 (1917)]], 1929.//
<<imageh 1867_Model_ramtorenschip_Laird_Brothers.jpg 400>>
//Model van een <<mouseover ramtorenschip Ramtorenschip>> (zoals de [[Prins Hendrik der Nederlanden (1867)]]), Laird Brothers - Birkenhead, 1867.<br>
Dit model bevindt zich in het Rijksmuseum.//
<<imageh 1868-69_Geschutskoepel_PHderNed.jpg 400>>
//Opengewerkt model van een geschutskoepel van de [[Prins Hendrik der Nederlanden (1867)]], 1868.<br>
Dit model bevindt zich in het Rijksmuseum.//
<<imageh 1868_Model_ramtorenschip1.jpg 400>>
//Model van een <<mouseover ramtorenschip Ramtorenschip>> (zoals de [[Stier (1868)]]), Laird Brothers - Birkenhead/Liverpool, 1868.<br>
Dit model bevindt zich in het Rijksmuseum.//
<<imageh 1885_ca_Koning_der_Nederlanden.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Koning der Nederlanden (1877)]], ca. 1885.//
<<imageh Monitor_Heiligerlee.jpg 400>>
//<<mouseover Monitor Monitor>> [[Heiligerlee (1868)]], ca. 1890.//
<<imageh 1915_ca_Willem_Warmont.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Willem Warmont (1905)]], ca. 1915.//
<<imageh 1910_ca_Minotaurus.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Minotaurus (1900)]], ca. 1910.//
<<imageh 1928_ca_Kanonneerboot_Friso.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Friso (1915)]], ca. 1928.//
<<imageh 1915-1948_Kanonneerboot_Gruno.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Gruno (1915)]], ca. 1930.//
<<imageh 1895_Schroefstoomschip_Koningin_Emma_vertrek_uit_Nieuwediep.jpg 400>>
//<<mouseover Schroefstoomschip Schroefstoomschip>> [[Koningin Emma der Nederlanden (1880)]] vertrekt uit het Nieuwediep (Den Helder), 1895.<br>
Het schip wordt getrokken door de stoomradersleepboot 'Hercules'. Op de achtergrond ligt het fort Harssens.//
<<imageh 1899_Binnenkomst_Den_Helder_fregat_Atjeh.jpg 400>>
//Aankomst in Den Helder van het <<mouseover schroefstoomschip Schroefstoomschip>> [[Atjeh (1877)]] met één ingedraaide schoorsteen, 1899.//
<<imageh 1910-1914_Dordrecht_pantserschip_Kortenaer.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> [[Kortenaer (1895)]] te Dordrecht, ca. 1912.<br>© [[Regionaal Archief Dordrecht|https://beeldbank.regionaalarchiefdordrecht.nl/search/detail/id/8BFFE199D6321D7C4BF8E18B72324AE8/showbrowse]]//
<<imageh 1879_Amstel_Rivier_kanonneerboot_Mosa_achtergrond_Amstel_Hotel.jpg 400>>
//<<mouseover (Rivier)kanonneerboot Kanonneerboot>> [[Mosa (1876)]] op de Amstel te Amsterdam, 1879.<br>
Op de achtergrond het Amstelhotel.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/e170a422-d1e1-1e3f-ddd2-572d65b02ee7/media/3a60d771-30d0-a60c-1aa0-1bc9383ebf87?mode=detail&view=horizontal&q=mosa&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1880-1910_rivierkanonneerboot_Isala.jpg 400>>
//Arnhem met <<mouseover (rivier)kanonneerboot Kanonneerboot>> [[Isala (1876)]], 1876.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/5f099e4c-ecd4-9030-9843-6421477b7662/media/a80739ff-f5bd-de78-4cb4-0804fb957c91?mode=detail&view=horizontal&q=isala&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1909_Amsterdam_torpedoboot_G10.jpg 400>>
//Amsterdam, <<mouseover torpedoboot torpedoboot>> [[G10 (1908)]], 1909.//
<<imageh 1914_Maastricht_torpedoboten_Makjan_Christiaan_Cornelis.jpg 400>>
//Maastricht met <<mouseover torpedoboten Torpedoboot>> [[Makjan (1891)]] (r) en [[Christiaan Cornelis (1905)]] (l), 1914.//
<<imageh 1948-1953_Duikboot_Dolfijn_O30.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Dolfijn (1948)]], ca. 1950.<br>
N.B. Registratie: ''O 30''//
<<imageh 1930_Den_Helder_O9.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O9 (1926)]] bij Den Helder, 1930.>>//
<<imageh 1946_Kruiser_Tromp.jpg 400>>
//<<mouseover Kruiser Kruiser>> [[Tromp (1938)]], 1946.//
<<imageh 1939_Mijnenlegger_Hr_Ms_Douwe_Aukes.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Douwe Aukes (1922)]], 1939.<br>
[[Mark, C., Public Domain|https://commons.wikimedia.org/w/index.php?curid=8258040]]//
<<imageh 192x_Mijnenlegger_Hr._Ms._Medusa.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Medusa (1911)]], ca. 1915.//
<<imageh 193x_Mijnenlegger_Hr_Ms_Prins_van_Oranje.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Prins van Oranje (1932)]], ca. 1935.//
<<imageh 1926_ca_Mijnenlegger_Serdang.jpg 400>>
//<<mouseover Schroefstoomschip Schroefstoomschip>> [[Serdang (1897)]] als 'vliegtuigtender' voor [[Van Berkel W-A]] vliegtuigen, 1926.//
<<imageh 19xx_Monitor_Reinier_Claeszen.jpg 400>>
//<<mouseover Monitor Monitor>> [[Reinier Claeszen (1894)]], ca. 1900.//
<<imageh 19xx_Amsterdam_Van_Meerlant.jpg 400>>
//Amsterdam, <<mouseover mijnenlegger Mijnenlegger>> [[Van Meerlant (1922)]], ca. 1938.//
<<imageh 1900_Curacao_Hr_Ms_Utrecht.jpg 400>>
//Curaçao, <<mouseover pantserdekschip Pantserdekschip>> [[Utrecht (1900)]], 1900.//
<<imageh 1909_Amsterdam_Piet_Hein-Evertsen_Jacob_van_Heemskerk.jpg 400>>
//Amsterdam met v.l.n.r. <<mouseover pantserschepen Pantserschip>> [[Piet Hein (1896)]], [[Evertsen (1896)]] en [[Jacob van Heemskerck (1908)]], 1909.//
<<imageh 1918_Den_Helder_Hertog_Hendrik_Het_Leven.jpg 400>>
//Den Helder, <<mouseover pantserschip Pantserschip>> [[Hertog Hendrik (1904)]]. Het Leven, 1918.//
<<imageh 1877_Schroefstoomschip_4de_klasse_Bonaire_Ed_Radermacher.jpg 400>>
//<<mouseover Schroefstoomschip Schroefstoomschip>> [[Bonaire (1877)]]. Ed Rademacher, 1878.//
<<imageh 1872-1894_Den_Helder_Ramschip_Zr_Ms_Guinea_ex_Matador.jpg 400>>
//Den Helder, <<mouseover pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Guinea (1870)]], ca. 1892.//
<<imageh 1872-1894_Hr_Ms_Guinea.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Guinea (1870)]], ca. 1892.//
<<imageh 1937_Abraham_van_der_Hulst.jpg 400>>
//<<mouseover Mijnenveger/mijnenlegger Mijnenveger>> [[Abraham van der Hulst (1937)]] (H), 1937.<br>
[[Publiek domein, Mark, C.|https://commons.wikimedia.org/w/index.php?curid=8311262]]//
<<imageh 1939_ca_Mijnenveger_Eland_Dubois.jpg 400>>
//<<mouseover Mijnenveger/mijnenlegger Mijnenveger>> [[Eland Dubois (1937)]] (D) in Nederlands-Indië, ca. 1939.<br>
[[Publiek domein, Mark, C.|https://commons.wikimedia.org/w/index.php?curid=8304766]]//
<<imageh 1918_Mijnenveger_M1.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[M1 (1918)]], 1918.//
<<imageh 1954_ca_Terschelling_1943_M866.jpg 400>>
//<<mouseover "Mijnenveger Mijnenveger>> [[Terschelling (1943)]] (M866), ca. 1954//
<<imageh 1938_IJmuiden_mijnenveger_Pieter_Florisz_F.jpg 400>>
//IJmuiden met <<mouseover "mijnenveger Mijnenveger>> [[Pieter Florisz (1937)]] (F), 1938.<br>
[[Publiek domein, Mark, C.|https://commons.wikimedia.org/w/index.php?curid=8307224]]//
<<imageh 19xx_Mijnenveger_C_in_Ned_Indië.jpg 400>>
//<<mouseover "Mijnenveger Mijnenveger>> [[C (1930)]] in Nederlands-Indië, ca. 1936.//
<<imageh 1947_Mijnenveger_Ceram.jpg 400>>
//<<mouseover Fregat Fregat>> / <<mouseover mijnenveger Mijnenveger>> [[Ceram (1946)]], ter gelegenheid van de installatie van de federale raad van Oost-Borneo gepavoiseerd.<br>Samarinda, Indonesië, 25 augustus 1947//
<<imageh 1939_ca_Mijnenveger_Pieter_de_Bitter_B.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Pieter de Bitter (1937)]] (B) onderweg naar Nederlands-Indië, 1937.<br>
[[Publiek domein, Mark, C.|https://commons.wikimedia.org/w/index.php?curid=8304739]]//
<<imageh 1930_Proefvaart_mijnenveger_B.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[B (1930)]] tijdens de proefvaart in 1930.//
<<imageh 19xx_Soerabaja_Mijnenveger_D.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[D (1930)]] in Soerabaja, ca. 1936.//
<<imageh 19xx_Mijnenveger_1_in_dok.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> '[[M1 (1918)]]' in het dok, 1918.<br>Later dat jaar werd de naam 'Mijnenveger 1' gewijzigd in 'M1'.//
<<imageh 1945_Vliegdekschip_Macoma.jpg 400>>
//<<mouseover Vliegdekschip Vliegdekschip>> [[Macoma (1944)]], 1945.<br>
CC0 [[Ministry of Defence, Netherlands|https://commons.wikimedia.org/w/index.php?curid=37250694]]//
<<imageh 1945_Vliegdekschip_Gadila.jpg 400>>
//<<mouseover Vliegdekschip Vliegdekschip>> [[Gadila (1944)]], 1945.<br>
[[Ministry of Defence, Netherlands|https://commons.wikimedia.org/w/index.php?curid=37250654]]//
<<imageh 1941_ca_Abraham_Crijnssen.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Abraham Crijnssen (1937)]], ca. 1941.//
<<imageh 1946_ca_Borndiep.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Borndiep (1946)]], ca. 1946.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/ce10b678-1160-c5bb-c534-0bf3e7f82be7/media/09a2c6f9-ddab-2f9b-c9cf-1bcc3a878f8c?mode=detail&view=horizontal&q=borndiep&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh Monitoren.jpg 400>>
//<<mouseover Monitor Monitor>> , doorsnedetekening met verschillen tussen [[Luipaard (1888)]], [[Cerberus (1870)]], [[Tijger (1869)]] en [[Adder (1875)]], ca. 1870.//
<<imageh 1948_Queen_Wilhelmina.jpg 400>>
//<<mouseover Escorteschip Escorteschip>> / <<mouseover patrouilleschip Patrouilleschip>> [[Queen Wilhelmina (1942)]], 1948.//
<<imageh 1943_ca_Carnation_later_Friso.jpg 400>>
//<<mouseover Korvet Korvet>> (nog Britse) Carnation, later in 1943 [[Friso (1943)]], ca. 1942.//
<<imageh 1953_ca_Walrus.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Walrus (1953)]], ca. 1953.<br>
[[Koninklijke Marine|https://commons.wikimedia.org/w/index.php?curid=2584932]]//
<<imageh Zwaardvis-class_submarines.jpg 400>>
//<<mouseover Duikboten Duikboot>> [[Zwaardvis (1972)]] (S806, voor) en [[Tijgerhaai (1972)]] S807, achter), ca. 1975.//
<<imageh 2005_Zeeleeuw_tijdens_Sail.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Zeeleeuw (1990)]] (S803) tijdens SAIL 2005 in Amsterdam.<br>
[[CC BY-SA 2.5, Björn Hamels|https://commons.wikimedia.org/w/index.php?curid=1548534]]//
<<imageh 2013_Dolfijn_Baltic_Sea.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Dolfijn (1993)]] (S808) tijdens oefeningen in de Baltische zee, 2013.<br>
[[Publiek domein, Josh Bennett|https://commons.wikimedia.org/w/index.php?curid=26733636]]//
<<imageh 2006_Schiedam_M860.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Schiedam (1986)]] (M860), 2006.<br>
[[CC BY-SA 3.0, Torsten Bätge|https://commons.wikimedia.org/w/index.php?curid=2174557]]//
<<imageh 2009_Hellevoetsluis_M_859_Westland_Lynx.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Hellevoetsluis (1987)]] (M859), 2009.<br>
[[CC BY 2.0, Joost J. Bakker|https://commons.wikimedia.org/w/index.php?curid=16209970]]//
<<imageh 2010_Sail_Amsterdam_Middelburg_Tromp.jpg 400>>
//Sail Amsterdam, 2010://
* //<<mouseover Fregat Fregat>> [[Tromp (2003)]] (F803)//
* //<<mouseover Mijnenjager Mijnenjager>> [[Middelburg (1986)]] (M858).//
//[[CC BY-SA 3.0, Marion Golsteijn|https://commons.wikimedia.org/w/index.php?curid=11239089]]////
<<imageh 2013_Patrouilleschip_Groningen.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> [[Groningen (2013)]] (P843), 2013.<br>
[[CC0, Ministerie van Defensie|https://commons.wikimedia.org/w/index.php?curid=32765086]]//
<<imageh 2014_Patrouilleschip_ZEELAND_Havendagen_Rotterdam.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> [[Zeeland (2013)]] (P841) tijdens de wereldhavendagen in Rotterdam, 2014.<br>
[[CC BY-SA 2.0, kees torn|https://commons.wikimedia.org/w/index.php?curid=35286165]]//
<<imageh 1993_Fregat_Abraham_van_der_Hulst.jpg 400>>
//<<mouseover Fregat Fregat>> [[Abraham van der Hulst (1993)]] (F832), 1993.<br>
[[CC0, Koninklijke Marine|https://commons.wikimedia.org/w/index.php?curid=3235727]]//
<<imageh 2004_Fregat_Jacob_Van_Heemskerck_F812.jpg 400>>
//<<mouseover Fregat Fregat>> [[Jacob van Heemskerck (1986)]] (F812), 2004.<br>
[[Publiek domein, Steven J. Weber|https://commons.wikimedia.org/w/index.php?curid=3667226]]//
<<imageh 1996_Fregat_ABRAHAM_CRIJNSSEN_F-816.jpg 400>>
//<<mouseover Fregat Fregat>> [[Abraham Crijnssen (1983)]] (F816), Norfolk , Virginia (USA), 1996.<br>
[[Publiek domein, Don S. Montgomery|https://commons.wikimedia.org/w/index.php?curid=8087792]]//
<<imageh 1995_ca_Fregat_Tromp_F801.jpg 400>>
//<<mouseover Fregat Fregat>> [[Tromp (1975)]] (F801), ca. 1995.<br>
[[CC BY-SA 3.0, Onbekend|https://commons.wikimedia.org/w/index.php?curid=23667]]//
<<imageh 1985_ca_Fregat_De_Ruyter_F806.jpg 400>>
//<<mouseover Fregat Fregat>> [[De Ruyter (1976)]] (F806), ca. 1985.<br>
[[CC BY-SA 1.0. Ministerie van Defensie|https://commons.wikimedia.org/w/index.php?curid=32745176]]//
<<imageh 1985-ca_Fregat_Evertsen_F815.jpg 400>>
//<<mouseover Fregat Fregat>> [[Evertsen (1967)]] (F806), ca. 1985.<br>
[[CC BY-SA 1.0, Ministerie van Defensie|https://commons.wikimedia.org/w/index.php?curid=29259811]]//
<<imageh 1967_Dolfijn_en_Potvis_te_Barcelona.jpg 400>>
//<<mouseover Duikboten Duikboot>> [[Dolfijn (1960)]] (S808, links) en [[Potvis (1965)]] (S804, rechts) te Barcelona, 1967.//
<<imageh Van_Well_Groeneveld_M875.jpg 400>>
//<<mouseover (Ondiepwater)mijnenveger Mijnenveger>> [[Van Well Groeneveld (1961)]] (M875), ca. 1972.//
<<imageh Mijnenvegers_M872_M876_M879.jpg 400>>
//V.l.n.r. <<mouseover mijnenvegers Mijnenveger>> [[Van Straelen (1960)]] (M872), [[Schuiling (1961)]] (M876) en [[Van 't Hoff (1961)]] (M879), ca. 1970.//
<<imageh 1956_Torpedobootjager_Friesland_D812.jpg 400>>
//<<mouseover Onderzeebootjager Onderzeebootjager>> [[Friesland (1956)]] (D812), 1956.<br>
© [[Koninklijke Marine|https://commons.wikimedia.org/w/index.php?curid=3386812]]//
<<imageh 2009_Mijnenjager_Urk_te_Zeebrugge.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Urk (1986)]] (M858) te Zeebrugge, 2009.//
<<imageh 1950_ca_Mijnenveger_Urk.jpg 400>>
//<<mouseover (Ondiepwater)mijnenveger Mijnenveger>> [[Urk (1947)]] (M876), ca. 1950.//
<<imageh 1960_ca_Pelikaan_A830.jpg 400>>
//<<mouseover Bevoorrader Bevoorrader>> [[Pelikaan (1948)]] (A830), ca. 1960.<br>
© [[Onze Vloot|https://onzevloot.weebly.com/pelikaan-a-830.html]]//
<<imageh 2000_ca_Pelikaan_A801.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Pelikaan (1990)]] (A801), ca. 2000.//
<<imageh 2007_Zuiderkruis_(A832)_Cartagena_Colombia.jpg 400>>
//<<mouseover Bevoorrader Bevoorrader>> [[Zuiderkruis (1975)]] (A832). Cartagena, Colombia, 2007.<br>
[[CC BY 2.5, Tedder|https://commons.wikimedia.org/w/index.php?curid=14943973]]//
<<imageh 2007_Snellius.jpg 400>>
//<<mouseover Opnemingsvaartuig Opnemingsvaartuig>> [[Snellius (2003)]] (A802), 2007.<br>
[[Publiek domein, Vermerris|https://commons.wikimedia.org/w/index.php?curid=2693247]]//
<<imageh 19xx_Snellius_A907.jpg 400>>
//<<mouseover Opnemingsvaartuig Opnemingsvaartuig>> [[Snellius (1952)]] (A907), ca. 1960.//
<<imageh 2010_ca_Pelikaan.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Pelikaan (2006)]] (A804), ca. 2010.<br>
[[CC BY-SA 1.0, Ministerie van Defensie|https://commons.wikimedia.org/w/index.php?curid=30534345]]//
<<imageh 2014_JSS_Karel_Doorman_in_Den_Helder.jpg 400>>
//<<mouseover "Ondersteuningsschip (JSS)" Ondersteuningsschip>> [[Karel Doorman (2015)]] (A833) te Den Helder, 2015.<br>
[[CC0, Ministerie van Defensie|http://www.defensie.nl/actueel/nieuws/2014/10/24/karel-doorman-naar-ebola-landen, CC0, https://commons.wikimedia.org/w/index.php?curid=38126430]]//
<<imageh 2012_LPD_Rotterdam_L800_with_FRISC_and_Cougars.jpg 400>>
//<<mouseover "Ondersteuningsschip (LPD)" Ondersteuningsschip>> [[Rotterdam (1998)]] (L800), 2012.<br>
[[CC BY-SA 1.0, Ad Biersteker|http://www.defensie.nl/missies/somalie, CC BY-SA 1.0, https://commons.wikimedia.org/w/index.php?curid=29260318]]//
<<imageh 2013_LPD_Johan_de_Witt_L801_with_LCVPs.jpg 400>>
//<<mouseover "Ondersteuningsschip (LPD)" Ondersteuningsschip>> [[Johan de Witt (2007)]] (L801) in de Golf van Aden, 2013.<br>
[[CC BY-SA 1.0, Gerben van Es|http://www.defensie.nl/missies/actueel/algemeen/2013/08/20/46207767/Weekoverzicht_Defensie_operaties, CC BY-SA 1.0, https://commons.wikimedia.org/w/index.php?curid=29260515]]//
<<imageh 1980_ca_Poolster_in_volle_zee.jpg 400>>
//<<mouseover Bevoorrader Bevoorrader>> [[Poolster (1964)]] (A835), ca. 1980.//
<<imageh 2004_ca_Urania.jpg 400>>
//<<mouseover Opleidingszeilschip Opleidingsschip>> [[Urania (2004)]] (Y8050), ca. 2004.//
<<imageh 2016_A902_MOV_Van_Kinsbergen.jpg 400>>
//<<mouseover Opleidingsschip Opleidingsschip>> [[Van Kinsbergen (1999)]] (A902) te Aarhus, 2016.<br>
[[CC BY-SA 4.0, Nimra|https://commons.wikimedia.org/w/index.php?curid=62716637]]//
<<imageh 2009_Amsterdam_A836.jpg 400>>
//<<mouseover Bevoorrader Bevoorrader>> [[Amsterdam (1995)]] (A836), 2009.<br>
[[CC BY-SA 1.0, Ministerie van Defensie|https://commons.wikimedia.org/w/index.php?curid=29260229]]//
<<imageh 2017_Den_Helder_Mercuur.jpg 400>>
//<<mouseover Torpedowerkschip Torpedowerkschip>> [[Mercuur (1987)]] (A900) te Den Helder, 2017.<br>
[[CC BY-SA 4.0, Dqfn13|https://commons.wikimedia.org/w/index.php?curid=57499127]]//
<<imageh 1976-1999_Blommendal_Tydeman_erachter_Buyskens.jpg 400>>
//<<mouseover "Oceanografisch onderzoeksvaartuig" "Oceanografisch onderzoeksvaartuig">> [[Tydeman (1976)]] (A905), geflankeerd door de <<mouseover opnemingsvaaruigen Opnemingsvaartuig>> [[Blommendal (1973)]] (A905) en [[Buyskes (1973)]] (A904), ca. 1990.//
<<imageh 1936_USS_Buchanan.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> US ''Buchanan'', 1936.<br>
In 1940 overgedragen aan de UK (als ''Campbeltown''), in 1941 uitgeleend aan Nederlandse marine onder dezelfde naam ([[Campbeltown (1941)]]).//
<<imageh 1941_Campbeltown_Ned_marine.jpg 400>>
//Nederlands marinepersoneel aan boord van de <<mouseover torpedobootjager Torpedobootjager>> [[Campbeltown (1941)]], 1941.<br>
[[Tomlin, H W, Public Domain|https://commons.wikimedia.org/w/index.php?curid=25280032]]//
<<imageh 2009_Rotterdam_Havendagen_A853_Nautilus.jpg 400>>
//<<mouseover Duikvaartuig Duikvaartuig>> [[Nautilus (1992)]] (A853) tijdens de Rotterdamse Havendagen, 2009.<br>
[[CC BY-SA 3.0, Quistnix|https://commons.wikimedia.org/w/index.php?curid=7768344]]//
<<imageh 2006_Argus.jpg 400>>
//<<mouseover Duikvaartuig Duikvaartuig>> [[Argus (1992)]] (A853), 2006.//
<<imageh 1997_Zuiderkruis_Van_Speijk_Willem_van_der_Zaan.jpg 400>>
//<<mouseover Bevoorrader Bevoorrader>> [[Zuiderkruis (1975)]] (A832).<br>Geflankeerd door de <<mouseover fregatten Fregat>> [[Van Speijk (1995)]] (F828, onder) en [[Willem van der Zaan (1991)]] (F829, boven), 1997.//
<<imageh 19xx_Zuiderkruis_De_Ruyter_Piet_Hein.jpg 400>>
//<<mouseover Bevoorrader Bevoorrader>> [[Zuiderkruis (1975)]] (A832) geflankeerd door de <<mouseover fregatten Fregat>> [[De Ruyter (1976)]] (F806, boven) en [[Piet Hein (1981)]] (F811, onder), ca. 1990.//
<<imageh 1921-1940_Eilerts_de_Haan.jpg 400>>
//<<mouseover Opnemingsvaartuig Opnemingsvaartuig>> [[Eilerts de Haan (1921)]], ca. 1930.//
<<imageh 1960_ca_Zeefakkel_A903.jpg 400>>
//<<mouseover Opnemingsvaartuig Opnemingsvaartuig>> [[Zeefakkel (1951)]] (A903), ca. 1960//
<<imageh 1955-1972_Onvermoeid_1.jpg 400>>
//<<mouseover Oceaanmijnenveger Mijnenveger>> [[Onvermoeid (1954)]] (A857), ca. 1970.//
<<imageh 1983_Mercuur_A856.jpg 400>>
//<<mouseover Torpedowerkschip Torpedowerkschip>> [[Mercuur (1973)]] (A856), ex [[Onverschrokken (1954)]], 1983.//
<<imageh 1960_ca_M811_Aalsmeer.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Aalsmeer (1956)]] (M811), ca. 1960//
<<imageh 1970_ca_Aquila_F542.jpg 400>>
//Italiaans <<mouseover fregat Fregat>> Aquila (F542), het voormalige Nederlandse fregat [[Lynx (1956)]] (F823), ca. 1970.//
<<imageh 1959_Lynx_F823.jpg 400>>
//<<mouseover Fregat Fregat>> [[Lynx (1956)]] (F823), 1956.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/0d0065e7-43af-fcf9-11aa-fbeaa7d414cc/media/b9eb0556-0972-5cc4-1cb4-a708942dde51?mode=detail&view=horizontal&q=2158_007236&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 19xx_Bulgia_P803_Freyr_P804_Hadda_P805.jpg 400>>
//<<mouseover Patrouilleschepen Patrouilleschip>> [[Bulgia (1954)]] (P803), [[Freyr (1954)]] (P804) en [[Hadda (1955)]] (P805), ca. 1970.//
<<imageh 1960_ca_OZB_jager_Holland_tijdens_BOZ.jpg 400>>
//<<mouseover Onderzeebootjager Onderzeebootjager>> [[Holland (1954)]] (D808) tijdens een bevoorrading op zee, ca. 1970.//
<<imageh 1954_Fret_bij_Overdracht.jpg 400>>
//<<mouseover Fregat Fregat>> [[Fret (1954)]] (F818) bij de overdracht in de USA.<br>
Nog met naamsein 1604 maar al wel voorzien van Nederlandse vlag, 1954.//
<<imageh 1974_Wolf_hashkotter_Lammie.jpg 400>>
//<<mouseover Fregat Fregat>> [[Wolf (1954)]] (F817) bij de hashkotter Lammie (HD160), 1974.<br>
Voor meer informatie zie [[Andere tijden|https://anderetijden.nl/aflevering/402/De-jacht-op-de-Lammie]].//
<<imageh 1968_Bolsward_M846.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Bolsward (1953)]] (M846), 1968.//
<<imageh 1954_Funchal_Madeira_De_Ruyter_tijdens_garantievaart.jpg 400>>
//Funchal, Madeira met <<mouseover kruiser Kruiser>> [[De Ruyter (1953)]] (C801) tijdens de z.g. garantievaart, 1954.<br>
''N.B.'' De karakteristieke radarschotels ontbreken nog!//
<<imageh 1953-1972_Kruiser_De_Ruyter.jpg 400>>
//<<mouseover Kruiser Kruiser>> [[De Ruyter (1953)]] (C801), ca. 1963.//
<<imageh 1964_De_Bitter_F807.jpg 400>>
//<<mouseover Fregat Fregat>> [[De Bitter (1950)]] (F807), 1964.//
<<imageh 19xx_Dubois_F809.jpg 400>>
//<<mouseover Fregat Fregat>> [[Dubois (1950)]] (F809), ca. 1960.//
<<imageh 1948_H37_Garland_als_Marnix_Amsterdam.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Marnix (1947)]] arriveert in Amsterdam, 5-1-1948.<br>
''N.B.'': De Britse Garland (H37) werd december 1947 gekocht en als Marnix in dienst gesteld.//
<<imageh 195x_F801_Marnix.jpg 340>>
//<<mouseover Fregat Fregat>> [[Marnix (1947)]] (F801), ca. 1955.//
<<imageh 1951_ca_Banckert_D801.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Banckert (1945)]] (D801), ca. 1951.<br>
© [[Allan C. Green|https://commons.wikimedia.org/w/index.php?curid=10411423]]//
<<imageh 1948_ca_Overflakkee.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Overflakkee (1944)]] (MV14/M822), ca. 1948.//
<<imageh 1937_Curacao_Johan_Maurits_van_Nassau.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Johan Maurits van Nassau (1933)]] te Willemstad - Curaçao, 1937.<br>
Een Kodachrome foto van Robert Yarnall Richie voor National Geographic Society.//
<<imageh 1952_ca_Johan_Maurits_van_Nassau_F802.jpg 400>>
//<<mouseover Escorteschip Escorteschip>> [[Johan Maurits van Nassau (1943)]] (F802), ca. 1952.//
<<imageh 1944_Van_Galen_OZB_Renown.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Van Galen (1942)]] (G84), 1944.<br>
Bevoorrading op zee via Britse kruiser Renown.<br>
© Collection T. Struijk//
<<imageh 1941_Isaac_Sweers_balloon.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Isaac Sweers (1941)]] (G83), 1941.//
<<imageh 1986_Y8001_Dokkum_1.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Dokkum (1955)]] (Y8001), 1986.<br>Mijnenjager Dokkum omgebouwd tot 'varend proefstation voor brandstoffen'.<br>
Tijdelijk (1986-1995) genaamd Van Speijk.//
<<imageh 19xx_Logementsschip_Flores_A877.jpg 400>>
//<<mouseover Logementsschip Logementsschip>> [[Flores (1926)]] (A877) nadert zijn einde, ca. 1967.//
<<imageh 1942-1946_Mijnenlegger_Jan_van_Brakel_M80.jpg 400>>
//<<mouseover Escortschip Escortschip>> [[Jan van Brakel (1936)]] (M80), ca. 1944.//
<<imageh 1937_ca_Mijnenlegger_Jan_van_Brakel.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Jan van Brakel (1936)]], ca. 1937.//
<<imageh 1935_Den_Helder_Torpedobootjager_Witte_de_With.jpg 400>>
//<<mouseover Torpedobootjager Torpedobootjager>> [[Witte de With (1930)]] (WW), Den Helder, 1935.//
<<imageh 1931_Den_Helder_Hulpmijnenlegger_Rigel.jpg 400>>
//<<mouseover Hulpmijnenlegger Mijnenlegger>> [[Rigel (1931)]], Den Helder, 1931.//
<<imageh 1930_Oostende_Mijnenlegger_Nautilus.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Nautilus (1930)]], Oostende, 1930.//
<<imageh 1924_Mijnenlegger_Krakatau_2_schoorstenen.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Krakatau (1924)]], 1924.<br>
''N.B.:'' Hier nog met 2 schoorstenen.//
<<imageh 1928_Vlootdag_Krakatau_dames_1_schoorsteen.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Krakatau (1924)]] op een vlootdag met dames aan boord, 1928.<br>
''N.B.:'' Hier met alleen de 1^^e^^ schoorsteen.//
<<imageh 1933_Soerabaje_Oostervaarwater_Krakatau_gekapseisd.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Krakatau (1924)]] gekapseisd in het Oostervaarwater bij Soerabaja, 1933.//
<<imageh 1923_Mijnenlegger_Pro_Patria.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Pro Patria (1923)]], 1923.//
<<imageh 1922_Duikboot_K_II.jpg 400>>
//<<mouseover Duikboot Duikboot >> [[KII (1922)]], 1922.//
<<imageh 1914_ca_Torpedoboot_G13.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[G13 (1914)]], 1914.//
<<imageh 1911_Wolf_Fret_voor_vertrek_NI.jpg 400>>
//<<mouseover Torpedoboten Torpedoboot>> [[Wolf (1911)]] en [[Fret (1911)]] voor vertrek naar Nederlands-Indië, 1911.//
<<imageh 19xx_Opnemingsvaartuig_Hydrograaf_2.jpg 400>>
//<<mouseover Opnemingsvaartuig Opnemingsvaartuig>> [[Hydrograaf (1910)]] (HY 1, A901), ca. 1910.//
<<imageh 1900_Torpedoboot_IX_voor_Politieboot.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[IX (1879)]] voor een politieboot, 1900.//
<<imageh 1880_Torpedoboot_XVII.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[XVII (1880)]], 1880.//
<<imageh 1915_ca_Torpedoboot_Zeeslang.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Zeeslang (1907)]], ca. 1915//
<<imageh 1915_ca_Torpedoboot_Zeeslang_2.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Zeeslang (1907)]], ca. 1915//
<<imageh 1877_Draak.jpg 400>>
//<<mouseover Monitor Monitor>> [[Draak (1878)]], ca. 1880.//
<<imageh 1891-1914_Hellevoetsluis_Monitor_Reinier_Claeszen_rechts_Matador_2.jpg 400>>
//Hellevoetsluis , ca. 1900://
* //links <<mouseover monitor Monitor>> [[Reinier Claeszen (1894)]]//
* //rechts <<mouseover monitor Monitor>> [[Matador (1879)]].//
<<imageh 1952-1967_Nettenwerkschip_Cerberus_A895_1.jpg 400>>
//<<mouseover Nettenwerkschip Nettenwerkschip>> [[Cerberus (1952)]] (A895), ca. 1960.//
<<imageh 1950_Sorong_NG_Woendi.jpg 400>>
//Ontscheping van <<mouseover troepentransportschip Troepentransportschip>> [[Woendi (1946)]] (A832) te Sorong, Nieuw-Guinea, 1950.//
<<imageh 1971_Triton_A848.jpg 400>>
//<<mouseover Duikvaartuig Duikvaartuig>> [[Triton (1964)]] (A848), 1971.//
<<imageh 1965_Hellevoetsluis_Nautilus_A849.jpg 400>>
//Hellevoetsluis met <<mouseover duikvaartuig Duikvaartuig>> [[Nautilus (1965)]] (A849), 1965.//
<<imageh 19xx_Hydra_A850.jpg 400>>
//<<mouseover Duikvaartuig Duikvaartuig>> [[Hydra (1965)]] (A850), ca. 1975.<br>
© [[Onze Vloot|https://onzevloot.weebly.com/hrms-hydra-a-850.html]]//
<<imageh 1967_ca_Argus_A847.jpg 400>>
//<<mouseover Duikvaartuig Duikvaartuig>> [[Argus (1939)]] (A847), ca. 1940.//
<<imageh 1970_Caledonisch_Kanaal_Mercuur_A829.jpg 400>>
//Caledonisch kanaal met <<mouseover torpedowerkschip Torpedowerkschip>> [[Mercuur (1936)]] (A829), 1970.<br>
© [[Jan van den Bogert|https://www.dutchfleet.nl/showthread.php/5655-Inlichtingen-van-de-Oude-Mercuur-ongeveer-in-1966?p=27075&viewfull=1#post27075]]//
<<imageh 1900_ca_Mercuur_1888.jpg 240>>
//<<mouseover Torpedowerkschip Torpedowerkschip>> [[Mercuur (1888)]], Ca. 1900.//
<<imageh 1939_Mercuur.jpg 400>>
//<<mouseover Torpedowerkschip Torpedowerkschip>> [[Mercuur (1936)]], 1939.<br>
© [[TakelaarPiet|https://www.dutchfleet.nl/showthread.php/5655-Inlichtingen-van-de-Oude-Mercuur-ongeveer-in-1966?p=26955&viewfull=1#post26955]]//
<<imageh 1976-1999_A904_Buyskes_A905_Blommendal_A906_Tydeman.jpg 400>>
//<<mouseover "Oceanografisch onderzoeksvaartuig" "Oceanografisch onderzoeksvaartuig">> [[Tydeman (1976)]] (A905), geflankeerd door de <<mouseover opnemingsvaaruigen Opnemingsvaartuig>> [[Blommendal (1973)]] (A905) en [[Buyskes (1973)]] (A904), ca. 1990.//
<<imageh 2009_Fregat_Van_Speijk_F828.jpg 400>>
//<<mouseover Fregat Fregat>> [[Van Speijk (1995)]] (F828), 2009.//
<<imageh 2012_HNLMS_Holland.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> [[Holland (2012)]] (P840), 2012.<br>
[[CC0|https://commons.wikimedia.org/w/index.php?curid=20431662]]//
<<imageh 2012_OPV_Friesland_zonder_mast.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> [[Friesland (2013)]] (P842) ten tijde van de proefvaart (nog zonder 'mast'), 2012.<br>
[[CC0, Ministerie van Defensie|https://commons.wikimedia.org/w/index.php?curid=20599556]]//
<<imageh 2010_Soemba_A850_Bob_Roetering1.jpg 400>>
//Den Helder met <<mouseover duikvaartuig Duikvaartuig>> [[Soemba (1989)]] (A850), 2010.<br>
© [[Bob Roetering|https://www.dutchfleet.nl/showthread.php/9982-Soemba-ex-RV?p=59474&viewfull=1#post59474]]//
<<imageh 2007_Gdynia_De_Ruyter_F804.jpg 400>>
//<<mouseover Fregat Fregat>> [[De Ruyter (2004)]] (F804), Gdynia - Polen, 2007.<br>
© [[Konflikty.pl|https://commons.wikimedia.org/w/index.php?curid=8841947]]//
<<imageh 2008_F805_Evertsen.jpg 400>>
//<<mouseover Fregat Fregat>> [[Evertsen (2005)]] (F805), 2008.<br>
[[CC BY-SA 2.5, Wikimedia Commons/Heb|https://commons.wikimedia.org/w/index.php?curid=8841947]]//
<<imageh 2014_De_Zeven_Provinciën_during_NSS.jpg 400>>
//<<mouseover Fregat Fregat>> [[De Zeven Provinciën (2002)]] (F802), 2014.<br>
[[CC BY-SA 1.0, Ministerie van Defensie|https://commons.wikimedia.org/w/index.php?curid=32481514]]//
<<imageh 2013_Luymes.jpg 400>>
//<<mouseover Opnemingsvaartuig Opnemingsvaartuig>> [[Luymes (2004)]] (A803), Marinedagen 2013 te Den Helder.<br>
[[CC BY-SA 3.0, Marion Golsteijn|https://commons.wikimedia.org/w/index.php?curid=26816459]]
<<imageh 2006_Zeebrugge_Van_Galen.jpg 400>>
//<<mouseover Fregat Fregat>> [[Van Galen (1994)]] (F834) te Zeebrugge in 2006.<br>
[[CC BY-SA 2.0, Peter van den Bossche|https://commons.wikimedia.org/w/index.php?curid=940401]]//
<<imageh 1989-2009_RV50_Soemba.jpg 400>>
//<<mouseover Duikvaartuig Duikvaartuig>> RV50, later [[Soemba (1989)]] (A850), ca. 2000.//
<<imageh 1881_schroefstoomschip_Suriname.jpg 400>>
//<<mouseover Schroefstoomschip Schroefstoomschip>> [[Suriname (1877)]], 1881.//
<<imageh 1892_Rijkswerf_Amsterdam_schroefstoomschip_Alkmaar.jpg 400>>
//Rijkswerf Amsterdam met <<mouseover schroefstoomschip Schroefstoomschip>> [[Alkmaar (1874)]], 1892.//
<<imageh 1893_Amsterdam_rijkswerf_schroefstoomschip_Borneo.jpg 400>>
//Rijkswerf Amsterdam met <<mouseover schroefstoomschip Schroefstoomschip>> [[Borneo (1892)]], 1893.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/53c9dce5-51a5-4719-1c28-16ac157f9133/media/9af6d6af-12f1-b2e0-3578-89f0ed400d3a?mode=detail&view=horizontal&q=schroefstoomschip&rows=1&page=72&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1907_ca_Ceram.jpg 400>>
//<<mouseover Schroefstoomschip Schroefstoomschip>> [[Ceram (1887)]], ca. 1907.//
<<imageh 1910_ca_Marinehaven_Soerabaja_Edi_en_Sumatra.jpg 400>>
//Marinehaven Soerabaja met <<mouseover "schroefstoomschip (flottieljevaartuig)" Schroefstoomschip>> [[Edi (1897)]] (het witte schip), ca. 1910.//
<<imageh 18xx_Krokodil.jpg 400>>
//<<mouseover Monitor Monitor>> [[Krokodil (1870)]], ca. 1890.//
<<imageh Model_monitor_Tijger.jpg 400>>
//Model van <<mouseover monitor Monitor>> [[Tijger (1869)]], R. Napier & Sons, 1868.//
<<imageh 1896_Venetie_schroefstoomschip_Van_Speijk.jpg 400>>
//Venetië met <<mouseover schroefstoomschip Schroefstoomschip>> [[Van Speijk (1887)]], 1896.//
<<imageh 1965_ca_Zuiderkruis_A853.jpg 400>>
//Den Helder met <<mouseover logementsschip Logementsschip>> [[Zuiderkruis (1944)]] (A853), ca. 1965.//
<<imageh 1956_ca_Zuiderkruis_emigrantenschip.jpg 400>>
//Emigrantenschip [[Zuiderkruis (1944)]], ca. 1956.//
<<imageh 1947-1951_troepentransportschip_Zuiderkruis.jpg 400>>
//<<mouseover Troepentransportschip Troepentransportschip>> [[Zuiderkruis (1944)]], ca. 1949.//
<<imageh 1995_ca_Fregat_Karel_Doorman_F827.jpg 400>>
//<<mouseover Fregat Fregat>> [[Karel Doorman (1991)]], (F827), ca. 1995.//
<<imageh 1997_ca_Fregat_Tjerk_Hiddes_F830.jpg 400>>
//<<mouseover Fregat Fregat>> [[Tjerk Hiddes (1993)]] (F830), ca. 1997.//
<<imageh 1993_Indienststelling_Fregat_Van_Amstel_F831.jpg 400>>
//<<mouseover Fregat Fregat>> [[Van Amstel (1993)]] (F831) bij de indienststelling, 1993.//
<<imageh 1998_ca_Fregat_Van_Nes_F833.jpg 400>>
//<<mouseover Fregat Fregat>> [[Van Nes (1994)]] (F833), ca. 1998.//
<<imageh 1985_ca_Mijnenjager_Alkmaar_M850.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Alkmaar (1983)]] (M850), ca. 1985.//
<<imageh 1995_ca_Mijnenjager_Delfzijl_M851.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Delfzijl (1983)]] (M851), ca. 1995.//
<<imageh 1995_ca_Mijnenjager_Dordrecht_M852.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Dordrecht (1983)]] (M852), ca. 1995.//
<<imageh 1895_IJ_korvet_Alkmaar_bij_Oosterdoksluis_Jacob_Olie.jpg 400>>
//IJ met <<mouseover schroefstoomschip Schroefstoomschip>> [[Alkmaar (1874)]] bij de Oosterdoksluis. Jacob Olie, 1895.//
<<imageh 1896_IJ_Oorlogsbodems_voor_anker_Jacob_Olie.jpg 400>>
//IJ met drie <<mouseover pantserschepen Pantserschip>> [[Evertsen (1896)]], [[Kortenaer (1895)]] en [[Piet Hein (1896)]] voor anker. Jacob Olie, 1896.//
<<imageh 1894_IJ_H_M_pantserschip_Stier_aan_de_Veesteiger_Jacob_Olie.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Stier (1868)]] aan de Veesteiger (IJ). Jacob Olie, 1894.//
<<imageh 1895_Marine_Etablissement_H_M_Korvet_De_Alkmaar_Jacob_Olie.jpg 400>>
//Marine Etablissement met <<mouseover schroefstoomschip Schroefstoomschip>> [[Alkmaar (1874)]]. Jacob Olie, 1895.//
<<imageh 1894_De_Ruijterkade_H_M_Monitor_Cerberus_Jacob_Olie.jpg 400>>
//De Ruijterkade (veesteiger) met <<mouseover monitor Monitor>> [[Cerberus (1870)]]. Jacob Olie, 1894.//
<<imageh 1894_De_Ruijterkade_terrein_Gemeentelijke_Vishal_achter_Cerberus_aan_Veesteiger_Jacob_Olie.jpg 400>>
//De Ruijterkade, het terrein van de Gemeentelijke Vishal.<br>Op de achtergrond <<mouseover monitor Monitor>> [[Cerberus (1870)]] aan de Veesteiger. Jacob Olie, 1894.//
<<imageh 1893_Oostelijke_Handelskade_Pantserkorvet_Koningin_Wilhelmina_der_Ned_Jacob_Olie.jpg 400>>
//<<mouseover Pantserdekschip Pantserdekschip>> [[Koningin Wilhelmina der Nederlanden (1894)]] aan de kop van de Oostelijke Handelskade. Jacob Olie, 1893.//
<<imageh 1891_IJ_Pantserdekkorvet_Hr_Ms_Sumatra_Jacob_Olie_3.jpg 400>>
//IJ met <<mouseover pantserdekschip Pantserdekschip>> [[Sumatra (1891)]]. Jacob Olie, 1891.//
<<imageh 1890_IJ_kop_Oostelijke_Handelskade_vlootschouw_bezoek_Emma.jpg 400>>
//IJ met vlootschouw tijdens bezoek van koningin Emma, gezien vanaf de kop van de Oostelijke Handelskade. Jacob Olie, 1890.//
<<imageh 1891_IJ_Pantserdekkorvet_Sumatra_Jacob_Olie.jpg 400>>
//IJ met <<mouseover pantserdekschip Pantserdekschip>> [[Sumatra (1891)]]. Jacob Olie, 1891.//
<<imageh 1894_Oorlogsschip_Wasa_Jacob_Olie.jpg 400>>
//Oorlogsschip Wasa. Jacob Olie, 1894.//
<<imageh 1896_IJ_Piet_Heijn_l_Kortenaer_r_Jacob_Olie.jpg 400>>
//<<mouseover Pantserschepen Pantserschip>> [[Piet Hein (1896)]] (links) en [[Kortenaer (1895)]] (rechts) voor anker in het - afgesloten - IJ. Jacob Olie, 1896.//
<<imageh 1899_IJ-gracht_vanuit_Zeemanshuis_Kadijksplein_8_Jacob_Olie.jpg 400>>
//Gezien naar IJ-gracht en Marine-etablissement (met oorlogsschip) vanuit het Zeemanshuis op Kadijksplein 8. Jacob Olie, 1899.//
<<imageh 1946_Walvisvaarder_Willem_Barendsz_2_Ben_van_Meerendonk.jpg 400>>
//Walvisvaarder Willem Barendsz twee dagen voor het eerste vertrek. Ben van Meerendonk, 24 oktober 1946.//
<<imageh 1946_Walvisvaarder_Willem_Barendsz_4_Ben_van_Meerendonk.jpg 400>>
//Walvisvaarder Willem Barendsz vertrekt voor zijn eerste reis. Ben van Meerendonk, 26 oktober 1946.//
<<imageh 1946_Walvisvaarder_Willem_Barendsz_3_Ben_van_Meerendonk.jpg 400>>
//Walvisvaarder Willem Barendsz vertrekt voor zijn eerste reis. Ben van Meerendonk, 26 oktober 1946.//
<<imageh 1947_Walvisvaarder_Willem_Barendsz_Ben_van_Meerendonk.jpg 400>>
//Walvisvaarder Willem Barendsz. Ben van Meerendonk, 1947.//
<<imageh 1946_Willem_Barendsz_8-oktober-1946_Ben_van_Meerendonk.jpg 400>>
//Voorbereidingen voor de eerste reis van de Willem Barendsz. Ben van Meerendonk, 8 oktober 1946.//
<<imageh 1946_Willem_Barendsz2_8-oktober-1946_Ben_van_Meerendonk.jpg 400>>
//Voorbereidingen voor de eerste reis van de Willem Barendsz. Ben van Meerendonk, 8 oktober 1946.//
<<imageh 1946_Proefvaart_walvisjager_Gerrit_W_Vinke_Ben_van_Meerendonk.jpg 400>>
//IJ, proefvaart van de walvisjager Gerrit W. Vinke. Ben van Meerendonk, 1946.//
<<imageh 1946_Willem_Barendtsz_2dg_Ben_van_Meerendonk.jpg 400>>
//Amsterdam, een deel van de bemanning en de directie van de Walvisvaarder Willem Barendsz bij het hijsen van de vlag twee dagen voor vertrek. Ben van Meerendonk, 24 oktober 1946.//
<<imageh 2016_Cork_duikboot_Bruinvis.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Bruinvis (1994)]] (S810), Cork, 2016.//
<<imageh 2014_Duikboot_Walrus.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Walrus (1992)]] (S802), Den Helder, 2014.//
<<imageh 2008_Mijnenjager_Vlaardingen.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Vlaardingen (1989)]] (M863), 2008.//
<<imageh 2005_ca_Mijnenjager_Zierikzee_M862.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Zierikzee (1987)]] (M862), ca. 2005.//
<<imageh 2002_Stanavmed_Witte_de_With.jpg 400>>
//<<mouseover Fregat Fregat>> [[Witte de With (1986)]] (F813), 2002.<br>
STANAVMED = Standing Naval Force of the Mediterranean.//
<<imageh 1960_ca_Onvervaard_M888.jpg 400>>
//<<mouseover Oceaanmijnenveger Mijnenveger>> [[Onvervaard (1955)]] (M888), ca. 1960.//
<<imageh 1960_ca_Mijnenveger_Onverdroten_M889.jpg 400>>
//<<mouseover Oceaanmijnenveger Mijnenveger>> [[Onverdroten (1955)]] (M889), ca. 1960.//
<<imageh 2004_Cerberus.jpg 400>>
//<<mouseover Duikvaartuig Duikvaartuig>> [[Cerberus (1992)]] (A851), 2004.<br>
© Ruud Mulder.//
<<imageh 2009_Hydra_A854.jpg 400>>
//<<mouseover Duikvaartuig Duikvaartuig>> [[Hydra (1992)]] (A854), 2009.//
<<imageh 2015_Willemstad_NAVO_mijnenjagers_in_de_Baltische_Zee.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Willemstad (1986)]] (M864) bij NAVO-oefeningen in de Baltische zee, 2015.<br>
© U.S. Navy photo by Mass Communication Specialist 2nd Class Amanda S. Kitchner.//
<<imageh 1966-1991_Tonijn_oefentorpedo.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Tonijn (1966)]] (S805), bezig met een oefentorpedo, ca. 1980.//
<<imageh 1988-05-27_Amsterdam_Zeehond_S809.jpg 400>>
//Amsterdam, <<mouseover duikboot Duikboot>> [[Zeehond (1961)]] (S809), 1988.//
<<imageh 1962_Amsterdam_D819.jpg 400>>
//<<mouseover Onderzeebootjager Onderzeebootjager>> [[Amsterdam (1958)]] (D819), 1962.//
<<imageh 1970_ca_Patrouilleschip_Hefring_P806.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> [[Hefring (1955)]] (P806), ca. 1970.//
<<imageh 1954_Balder_tewaterlating.jpg 400>>
//Tewaterlating van <<mouseover patrouilleschip Patrouilleschip>> [[Balder (1954)]] (P802), 1954.//
<<imageh Argus_1939-1989.jpg 400>>
//Den Helder, <<mouseover duikvaartuig Duikvaartuig>> [[Argus (1939)]] (A847), 1953.<br>
© Marinemuseum, Den Helder.//
<<imageh 1955_Vlissingen_duikvaartuig_Beveland.jpg 400>>
//De voormalige <<mouseover mijnenveger Mijnenveger>> - nu <<mouseover duikvaartuig Duikvaartuig>> - [[Beveland (1943)]] (A897) te Vlissingen, 1955.<br>Met hulpvaartuig (motorsloep communicatievaartuig) Y 8240 langszij afgemeerd.//
<<imageh 19xx_Zeearend_A892.jpg 400>>
//<<mouseover Opleidingsschip Opleidingsschip>> [[Zeearend (1940)]] (A892), ca. 1960.//
<<imageh 2012_A923_Van_Bochove.jpg 400>>
//<<mouseover Wachtschip Ondersteuningsschip>> [[Van Bochove (1962)]] (A923), 2012.<br>
© S.J. de Waard / CC-BY-SA-3.0 (via Wikimedia Commons)//
<<imageh 1960_Urania_1928.jpg 400>>
//<<mouseover Opleidingszeilschip Opleidingsschip>> [[Urania (1928)]] (H31/Y8050), 1960.//
<<imageh 1951_ca_Ternate_M816.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Ternate (1946)]], ca. 1951.//
<<imageh 1946_Ternate_PK3.jpg 400>>
//<<mouseover Korvet Korvet>> [[Ternate (1946)]], 1946.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/6b42decf-bb97-f6af-aac9-c2a2c8cd9b4e/media/5b225484-27c2-3542-9e84-5a12a6c0ca90?mode=detail&view=horizontal&q=ternate&rows=1&page=5&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1956_ca_Duikboot_Zwaardvis_S814.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[Zwaardvisch (1943)]], ca. 1956.//
<<imageh 1948-1953_Triton_ex-HF1.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Triton (1914)]], ca. 1925.//
<<imageh 1901-1919_Rindjani.jpg 400>>
//<<mouseover Torpedoboten Torpedoboot>> [[Rindjani (1901)]], [[Ophir (1901)]] en [[Pangrango (1901)]], ca. 1910.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=rindjani]]//
<<imageh 1903-1919_Hellevoetsluis_Smeroe.jpg 400>>
//Hellevoetsluis met <<mouseover torpedoboten Torpedoboot>> [[Smeroe (1903)]], [[Tangka (1903)]] en [[Wajang (1903)]], ca. 1911.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=smeroe]]//
<<imageh 1879-1907_Merva.jpg 400>>
//<<mouseover Rivierkanonneerboot Kanonneerboot>> [[Merva (1879)]], ca. 1893.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=merva]]//
<<imageh 2014_Kustwachtcutter_Jaguar_P810.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> (z.g. kustwachtkotter) [[Jaguar (1999)]], 2014.//
<<imageh 1884-1914_Schroefstoomschip_Sommelsdijk.jpg 400>>
//<<mouseover Schroefstoomschip Schroefstoomschip>> [[Sommelsdijk (1884)]], ca. 1899.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=Sommelsdijk]]//
<<imageh 1929-1930_Willebrord_Snellius.jpg 400>>
//<<mouseover Opnemingsvaartuig Opnemingsvaartuig>> [[Willebrord Snellius (1929)]] tijdens de Snellius-expeditie.<br>
Te Soerabaja in dok voor periodiek onderhoud, 1930.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/13?q_searchfield=Willebrord+Snellius]]//
<<imageh 1928-1942_Willebrord_Snellius.jpg 400>>
//<<mouseover Opnemingsvaartuig Opnemingsvaartuig>> [[Willebrord Snellius (1929)]], ca. 1935.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=Willebrord+Snellius]]//
<<imageh 1891_Vlissingen_Sumbawa.jpg 400>>
//Vlissingen met <<mouseover schroefstoomschip Schroefstoomschip>> [[Sumbawa (1891)]], 1891.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/1?q_searchfield=sumbawa]]//
<<imageh 1882-1913_Spartorpedoboot_Hekla.jpg 400>>
//<<mouseover Spartorpedoboot Torpedoboot>> [[Hekla (1891)]], ca. 1893.//
<<imageh 1940-1973_Hendrik_Karssen.jpg 400>>
//<<mouseover "Opleidingsschip (ex communicatievaartuig)" Opleidingsschip>> [[Hendrik Karssen (1939)]], ca. 1968.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/d06b8f57-d282-1711-7434-93b0aeb1c17d/media/3fd23edd-ef0e-c0c8-c4e5-b1ab02b61451?mode=detail&view=horizontal&q=De%20Mok&rows=1&page=31&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1948-1973_Hobein_Y8101.jpg 400>>
//<<mouseover "Opleidingsschip (krijgsbuit)" Opleidingsschip>> [[Hobein (1948)]], ca. 1960.//
<<imageh 1943_Dover_MTB433_bezoek_Prins_Bernard.jpg 400>>
//Dover, <<mouseover Torpedomotorboot Torpedomotorboot>> [[MTB433 (1943)]], bezoek ZKH Prins Bernhard in 1943.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/14?q_searchfield=MTB433]]//
<<imageh 1942_MGB114.jpg 400>>
//<<mouseover Motorkannonneerboot Kanonneerboot>> [[MGB114 (1943)|MTB433 (1943)]], 1943.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/2?q_searchfield=MGB114]]//
<<imageh 1956-1993_Abcoude_M810.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Abcoude (1956)]] (M810), ca. 1970.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/9?q_searchfield=Abcoude]]//
<<imageh 1947_Pieter_Florisz_r_Abraham_van_der_Hulst_1946.jpg 400>>
//Afgemeerd aan de Parkkade: <<mouseover mijnenvegers Mijnenveger>> [[Pieter Florisz (1937)]] (MV4) en [[Abraham van der Hulst (1946)]] (MV2), ca. 1948.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/59?q_searchfield=Pieter+Florisz]]//
<<imageh 1960-1979_Alblas_M868.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Alblas (1960)]] (M868), ca. 1970.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/13?q_searchfield=alblas]]//
<<imageh 1960-1983_Bussemaker_M869.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Bussemaker (1960)]] (M869), ca. 1972.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/4?q_searchfield=bussemaker]]//
<<imageh 1960_Chömpff_M874.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Chömpff (1960)]] (M874), ca. 1972.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/7?q_searchfield=Ch%C3%B6mpff]]//
<<imageh 1892-1928_Schoener_Zeehond.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> (schoener) [[Zeehond (1892)]], ca. 1900.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/29?q_searchfield=zeehond]]//
<<imageh 1889-1921_Schoener_Dolfijn.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> (schoener) [[Dolfijn (1889)]], ca. 1905.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/9?q_searchfield=dolfijn]]//
<<imageh 1925_Onderzeebootmoederschip_Pelikaan.jpg 400>>
//<<mouseover Onderzeebootmoederschip Ondersteuningsschip>> [[Pelikaan (1922)]], 1925.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/8?q_searchfield=pelikaan]]//
<<imageh 1922-1934_Onderzeebootmoederschip_Pelikaan.jpg 400>>
//<<mouseover Onderzeebootmoederschip Ondersteuningsschip>> [[Pelikaan (1922)]], ca. 1928.//
<<imageh Pelikaan_werkplaats.jpg 400>>
//Werkplaats aan boord van <<mouseover onderzeebootmoederschip Ondersteuningsschip>> [[Pelikaan (1922)]], 1922.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/22?q_searchfield=pelikaan]]//
<<imageh 1926-1929_Den_Helder_Cornelis_Drebbel.jpg 400>>
//Den Helder, met links <<mouseover logementschip Ondersteuningsschip>> [[Cornelis Drebbel (1915)]], ca. 1928.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/2?q_searchfield=cornelis+drebbel]]//
<<imageh 1971_Rotterdam_Cornelis_Drebbel_Potvis_Zeehond.jpg 400>>
//Rotterdam, met links <<mouseover logementschip Ondersteuningsschip>> [[Cornelis Drebbel (1915)]] (inmiddels gerenoveerd), 1971.<br>
Ernaast duikboten [[Zeehond (1961)]] (S809) en [[Potvis (1965)]] (S804).<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/31?q_searchfield=cornelis+drebbel]]//
<<imageh 1931-1942_Rotterdam_Z5.jpg 400>>
//Rotterdam, met <<mouseover patrouilleschip Patrouilleschip>> [[Z5 (1917)]], ca. 1936.<br>
In 1931 werd de <<mouseover torpedoboot Torpedoboot>> Z5 verbouwd tot <<mouseover patrouilleschip Patrouilleschip>>.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/3?q_searchfield=Z5]]//
<<imageh 1919-1933_Torpedoboot_Z1.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Z1 (1919)]], ca. 1926.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/1?q_searchfield=Z1]]//
<<imageh 1916-1944_Z7.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Z7 (1916)]], ca. 1930.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=Z7]]//
<<imageh 1964-1975_De_Zeven_Provinciën_3.jpg 400>>
//<<mouseover Kruiser Kruiser>> [[De Zeven Provinciën (1953)]] (C802), ca. 1970.<br>
Na de ombouw tot raketkruiser.<br>© [[Dutchfleet|https://www.dutchfleet.nl/attachment.php?attachmentid=3189&d=1129905847]]//
<<imageh 1954_De_Zeven_Provinciën_14.jpg 400>>
//<<mouseover Kruiser Kruiser>> [[De Zeven Provinciën (1953)]] (C802), 1954.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/22?q_searchfield=De+Zeven+Provinci%C3%ABn+%281953%29]]//
<<imageh 1935-1938_Kruiser_Sumatra_2.jpg 400>>
//<<mouseover Kruiser Kruiser>> [[Sumatra (1926)]], ca. 1937.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/25?q_searchfield=sumatra+1926]]//
<<imageh Adder_1871.jpg 115>>
//<<mouseover Rammonitor Monitor>> [[Adder (1875)]].//
<<imageh Rammonitor_Adder.jpg 400>>
//<<mouseover Rammonitor Monitor>> [[Adder (1875)]].<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/1?q_searchfield=adder]]//
<<imageh 1888-1907_Luipaard.jpg 400>>
//<<mouseover Rammonitor Monitor>> [[Luipaard (1888)]], ca. 1900.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=luipaard]]//
<<imageh 1872-1905_Rammonitor_Haai.jpg 400>>
//<<mouseover Rammonitor Monitor>> [[Haai (1872)]], ca. 1888.//
<<imageh 1870-1906_Monitor_Panter.jpg 400>>
//<<mouseover Rammonitor Monitor>> [[Panter (1870)]], ca. 1888.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/10?q_searchfield=panter]]//
<<imageh 1897_Poeloe_Weh_Prins_Hendrik_der_Nederlanden.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Prins Hendrik der Nederlanden (1867)]] afgemeerd in de Sabang haven van het eiland Poeloe Weh (Atjeh), 1897.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/6?q_searchfield=Prins+Hendrik+der+Nederlanden+%281867%29]]//
<<imageh 1876-1940_Utrecht_Bever.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Bever (1876)]], ca. 1900.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/2?q_searchfield=Bever]]//
<<imageh 1876-1926_Kanonneerboot_Das.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> / <<mouseover mijnenlegger Mijnenlegger>> [[Das (1876)]], ca. 1900.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=das]]//
<<imageh 1915_Werkendam_Kanonneerboot_Dog.jpg 400>>
//Werkendam met <<mouseover kanonneerboot Kanonneerboot>> [[Dog (1874)]], 1915.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=dog]]//
<<imageh 1912_Zwolle_Ever.jpg 400>>
//Zwolle met <<mouseover kanonneerboot Kanonneerboot>> [[Ever (1873)]], 1912.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/3?q_searchfield=ever]]//
<<imageh 1874-1936_Harlingen_Havik.jpg 400>>
//Harlingen met <<mouseover kanonneerboot Kanonneerboot>> / <<mouseover mijnenlegger Mijnenlegger>> [[Havik (1874)]], ca. 1905.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=havik]]//
<<imageh 1938_Den_Helder_kanonneerboot_Freyr.jpg 400>>
//Den Helder met <<mouseover kanonneerboot Kanonneerboot>> [[Freyr (1877)]], 1938.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/10?q_searchfield=freyr]]//
<<imageh 1910_Rotterdam_Balder.jpg 400>>
//Rotterdam met <<mouseover mijnenlegger Mijnenlegger>>/<<mouseover kanonneerboot Kanonneerboot>> [[Balder (1879)]], 1910.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/27?q_searchfield=Balder]]//
<<imageh 1940_Hendrik_Ido_Ambacht_kanonneerboot_Vidar_voor_sloop.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>>/<<mouseover kanonneerboot Kanonneerboot>> [[Vidar (1879)]], klaar voor sloop te Hendrik Ido Ambacht, 1940.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=vidar]]//
<<imageh 1880-1940_Kanonneerboten_Hefring_en_Tyr.jpg 400>>
//<<mouseover Kanonneerboten Kanonneerboot>> [[Hefring (1880)]] (links) en [[Tyr (1878)]] (rechts), ca. 1910.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/23?q_searchfield=Hefring]]//
<<imageh 1918-1919_Zwolle_Ever_Bulgia.jpg 400>>
//Zwolle met <<mouseover kanonneerboten Kanonneerboot>> [[Bulgia (1884)]] (links) en [[Ever (1873)]] (rechts), 1918.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/39?q_searchfield=Bulgia]]//
<<imageh 1920-1930_Cornelis_Drebbel.jpg 400>>
//<<mouseover Logementsschip Logementsschip>> en depotschip van de Onderzeedienst [[Cornelis Drebbel (1915)]], ca. 1925.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/4?q_searchfield=cornelis+drebbel]]//
<<imageh 1930-1942_Arend_of_Valk.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> ('opiumjager') [[Arend (1929)]] of [[Valk (1929)]] van de Gouvernementsmarine , ca. 1936.//
<<imageh 1912_Albatros.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Albatros (1912)]] van de Gouvernementsmarine , 1912.//
<<imageh 1913-1942_Aldebaran.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Aldebaran (1913)]] van de Gouvernementsmarine , ca. 1928.//
<<imageh 1912-1938_Orion.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Orion (1912)]] van de Gouvernementsmarine , ca. 1925.//
<<imageh 1914-1942_Bellatrix.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Bellatrix (1914)]] van de Gouvernementsmarine , ca. 1928.//
<<imageh 1915-1942_Canopus.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Canopus (1915)]] van de Gouvernementsmarine , ca. 1928.//
<<imageh 1914-1942_Deneb.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Deneb (1915)]] van de Gouvernementsmarine , ca. 1928.//
<<imageh 1939-1942_Zuiderkruis.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Zuiderkruis (1924)]] als duikboot bevoorradingsschip, ca. 1939.//
<<imageh 1920-1940_Tydeman.jpg 400>>
//<<mouseover Opnemingsvaartuig Opnemingsvaartuig>> [[Tydeman (1918)]], ca. 1930.//
<<imageh 1940-1942_TM5_TM8_TM6.jpg 400>>
//<<mouseover Motortorpedoboten Torpedoboot>> v.l.n.r. [[TM6 (1940)]], [[TM8 (1940)]] en [[TM5 (1940)]], in Nederlands Indië, ca. 1941.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/4?q_searchfield=TM6]]//
<<imageh 1942-1946_Weymouth_MTB_240.jpg 400>>
//<<mouseover Torpedomotorboot Torpedomotorboot>> v.l.n.r. [[MTB240 (1942)]] (Buizerd) te Weymouth (Zuid-Engeland), ca. 1943.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=Buizerd]]//
<<imageh 1942_H8_onderweg_van_New_Orleans_naar_Curacao.jpg 400>>
//<<mouseover Torpedomotorboot Torpedomotorboot>> [[H8 (1942)]] onderweg van New Orleans naar Curaçao, 1942.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/17?q_searchfield=h8]]//
<<imageh 1943_MRB50.jpg 400>>
//<<mouseover Motorreddingboot Ondersteuningsschip>> [[MRB50 (1942)]] te Willemstad, Curaçao, 1943.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=MRB50]]//
<<imageh 1941_OJR3_als_deklast.jpg 400>>
//<<mouseover Torpedomotorboot Torpedomotorboot>> [[OJR3 (1941)]] als deklast aan boord van de Poelau Tello te New Orleans voor verscheping naar Nederlands Indië, 1941.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/3?q_searchfield=OJR3]]//
<<imageh 1942-1946_H8_2.jpg 400>>
//<<mouseover Torpedomotorboot Torpedomotorboot>> [[H8 (1942)]], ca. 1944.<br>
© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/1?q_searchfield=H8]]//
<<imageh 1940-05-24_TM51_na_aankomst_Engeland.jpg 400>>
//<<mouseover Torpedomotorboot Torpedomotorboot>> [[TM51 (1939)]] na aankomst in Engeland, 24-5-1940.<br>
© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/19?q_searchfield=TM51]]//
<<imageh 1948-1953_Triton_ex-Matsunoura_Maru.jpg 400>>
//<<mouseover Bergingsvaartuig Ondersteuningsschip>> [[Triton (1948)]] (ex-Matsunoura Maru), ca. 1950.<br>
© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/12?q_searchfield=Triton]]//
<<imageh 1950_Soerabaja_Triton_ex-Japans.jpg 400>>
//Soerabaja met <<mouseover bergingsvaartuig Ondersteuningsschip>> [[Triton (1948)]], 1950.<br>
© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/20?q_searchfield=Triton]]//
<<imageh 1930_Motortorpedoboot_TMIV.jpg 400>>
//<<mouseover Torpedomotorboot Torpedomotorboot>> [[TMIV (1929)]], 1930.<br>
© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=TM+IV]]//
<<imageh 1929-1938_Motortorpedoboot_TMI.jpg 400>>
//<<mouseover Torpedomotorboot Torpedomotorboot>> [[TMI (1929)]], ca. 1929.<br>
© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/1?q_searchfield=TM+I]]//
<<imageh 1924_Soerabaja_Hoofdinspecteur_Zeeman.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Hoofdinspecteur Zeeman (1909)]] van de Gouvernementsmarine in het dok te Soerabaja, 1924.//
<<imageh 1891_ramtorenschip_Buffel.jpg 400>>
//Amsterdam met <<mouseover pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Buffel (1868)]], gepavoiseerd tijdens het bezoek van de Duitse keizer Willem II aan Amsterdam op 2 juli 1891. De keizer bevindt zich aan boord van de salonboot Ceres.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/25?q_searchfield=Buffel]]//
<<imageh Buffeldoorsnee3-1600x920.jpg 400>>
//Doorsnedetekening van <<mouseover pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Buffel (1868)]].//
<<imageh 1868-1906_ramtorenschip_Schorpioen.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Schorpioen (1868)]], ca. 1890.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/19?q_searchfield=schorpioen]]//
<<imageh 1868-1906_ramtorenschip_Schorpioen_2.jpg 400>>
//<<mouseover Pantserschip Pantserschip>> / <<mouseover ramtorenschip Ramtorenschip>> [[Schorpioen (1868)]], ca. 1890.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/36?q_searchfield=schorpioen]]//
<<imageh 1868-1909_Monitor_Heiligerlee_2.jpg 400>>
//<<mouseover Monitor Monitor>> [[Heiligerlee (1868)]], ca. 1890.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/1?q_searchfield=heiligerlee]]//
<<imageh 1892_De_Ruyterkade_monitor_Tijger.jpg 400>>
//Amsterdam, De Ruijterkade met <<mouseover Monitor Monitor>> [[Tijger (1869)]], 1892.<br>© [[Stadsarchief Amsterdam|https://beeldbank.amsterdam.nl/beeldbank/indeling/detail/start/2?q_searchfield=tijger]]//
<<imageh 1919_NI_Serdang_Van_Berkel_WAs.jpg 400>>
//<<mouseover Schroefstoomschip Schroefstoomschip>> [[Serdang (1897)]] als 'vliegtuigtender' voor [[Van Berkel W-A]] vliegtuigen, ca. 1927.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/84f1c105-fbeb-e910-e4e2-8593e3e90536/media/36b646b8-1986-2b4a-89da-f506098ec66a?mode=detail&view=horizontal&q=serdang&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&fq%5B%5D=search_s_tw_all:%22Van%20Berkel%20WA%22]]//
<<imageh 1876-1893_schroefstoomschip_Samarang.jpg 400>>
//<<mouseover Schroefstoomschip Schroefstoomschip>> [[Samarang (1877)]], ca. 1880.<br>©[[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/93e58a23-1832-4811-c3d8-e401b65e1ff8/media/c6f0b5f9-fed1-96b7-8744-e46f2e90d78d?mode=detail&view=horizontal&q=Samarang&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&filterAction]]//
<<imageh 1937-1942_Hulpmijnenveger_Kawi.jpg 400>>
//<<mouseover Hulpmijnenveger Mijnenveger>> [[Kawi (1940)]], ca. 1940.<br>©[[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/eb9db715-e704-6250-b950-db6ac6ae3bfd/media/04bc2713-e8e4-835a-7681-0a0212345f49?mode=detail&view=horizontal&q=hulpmijnenveger&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1939-1943_Hulpmijnenveger_Bloemendaal.jpg 400>>
//<<mouseover Hulpmijnenveger Mijnenveger>> [[Bloemendaal (1939)]] (4A) in Britse wateren, ca. 1939.<br>©[[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/ac0a5095-2232-e8c6-6c1f-8f17afbc2456/media/04e80a73-0ca0-4cc2-b627-c1fb3ccb4bbe?mode=detail&view=horizontal&q=hulpmijnenveger&rows=1&page=48&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh ABC_Hulpmijnenvegers.jpg 400>>
//Enkele <<mouseover hulpmijnenvegers Mijnenveger>> van de ABC-klasse (Divisie Mijnenvegers 3 te Tandjong Priok), 1941.<br>©[[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/d85b2412-c9ec-8292-34a8-f8e1b80486d7/media/04973445-c419-96df-ed0e-71ff9e028924?mode=detail&view=horizontal&q=hulpmijnenvegers&rows=1&page=7&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1938-1942_Hulpmijnenveger_Ceram.jpg 400>>
//<<mouseover Hulpmijnenveger Mijnenveger>> [[Ceram (1939)]], ca. 1941.<br>©[[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/30149a73-9c0a-5ae1-5a70-16fc24ba1366/media/068a4e88-9d7d-9018-9708-a5d1843f2b53?mode=detail&view=horizontal&q=ceram&rows=1&page=5&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1980-1993_Banckert_F810.jpg 400>>
//<<mouseover Fregat Fregat>> [[Banckert (1980)]], 1980.<br>©[[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/a7276dd8-a737-d910-c05c-1fa9450555c7/media/e6514009-ed97-2fd8-6bef-3425be822c67?mode=detail&view=horizontal&q=Banckert&rows=1&page=45&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1938_ca_Willem_van_Ewijck_E.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Willem van Ewijck (1937)]], ca. 1938.//
<<imageh 1941-1944_Bruinvisch.jpg 400>>
//<<mouseover Hulpmijnenveger Mijnenveger>> [[Bruinvisch (1941)]] (9B), ca. 1942.//
<<imageh 1906-1919_Torpedoboot_G8_Cornelis_Janssen_de_Haan.jpg 400>>
//<<mouseover Torpedoboot Torpedoboot>> [[Cornelis Janssen de Haan (1906)]] (G8), Rotterdam, 1906.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/2ac91bc7-6bc6-d28b-b040-a53eb7e6f6fd/media/560e2f50-1433-7ad4-e243-5cb14f2e44f7?mode=detail&view=horizontal&q=Cornelis%20Janssen%20de%20Haan&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1950_Toulon_Proefschip_Paets_van_Troostwijck.jpg 400>>
//<<mouseover Proefschip Ondersteuningsschip>> [[Paets van Troostwijck (1949)]] (HE1), Toulon, 1950.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/cac334b6-c315-20cd-3759-7d7a9f674b4c/media/551b03c8-e1f4-b5f2-d47d-974d80ac6507?mode=detail&view=horizontal&q=Paets&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1949-1962_Proefschip_Paets_van_Troostwijck.jpg 400>>
//<<mouseover Proefschip Ondersteuningsschip>> [[Paets van Troostwijck (1949)]] (A893), ca. 1955.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/1385f3c3-55d3-4fe7-c6c3-587237d91c00/media/471a03ce-c15e-a774-f7ab-ee2c90272623?mode=detail&view=horizontal&q=Paets&rows=1&page=9&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1911-1940_Medusa.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Medusa (1911)]], ca. 1911.//
<<imageh 1945-1948_Goeree_ex-Jude_1.jpg 400>>
//<<mouseover Boeienschip Ondersteuningsschip>> [[Goeree (1945)]] (HD1), ca. 1946.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/c3e90e83-8a6d-0ac2-698a-2b947784bc31/media/a19b3980-3d64-79ad-87c6-0d7ccb573c01?mode=detail&view=horizontal&q=Goeree&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1941_Hulpmijnenvegers_Alor-klasse.jpg 400>>
//<<mouseover Hulpmijnenvegers Mijnenveger>> van de ABC-klasse (Divisie Mijnenvegers 3 te Tandjong Priok), 1941.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/15ce5938-cf56-7ec8-dca0-cbab3687a1c1/media/9f26b375-15f1-5b4c-8dd0-772309c37672?mode=detail&view=horizontal&q=alor&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&filterAction]]//
<<imageh 1941-1944_Hulpmijnenveger_Maria_Elisabeth.jpg 400>>
//<<mouseover Hulpmijnenveger Mijnenveger>> [[Maria Elizabeth (1941)]] (9A), ca. 1942.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/da4f97ab-7393-4487-0fe4-4738e9e8be65/media/8d9bbc79-33a1-8390-79b8-ccf2f32e034d?mode=detail&view=horizontal&q=hulpmijnenveger&rows=1&page=8&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1900_Schoener_Zeehond.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> [[Zeehond (1892)]], 1900.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/76bb7e57-63b1-c061-6e60-d0f9e3c2793a/media/ce1aad1b-0606-862b-983e-33ea99110587?mode=detail&view=horizontal&q=Zeehond&rows=1&page=85&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1909_Hardanger_fjord_schoener_Zeehond.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> [[Zeehond (1892)]] in de Hardangerfjord, 1909.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/17fe6300-53d2-8a64-79d8-4b70ec6aeb35/media/29e92a19-21b8-cdec-7884-3da00bb4c348?mode=detail&view=horizontal&q=Hardanger&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1889-1921_Schoener_Dolfijn_2.jpg 400>>
//Groningen, Oosterkade met <<mouseover patrouilleschip Patrouilleschip>> [[Dolfijn (1889)]], ca. 1905.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/538c85b2-74a7-25f8-c44f-8c743c3a3d1d/media/1f507511-f83d-15b3-9f26-03446a63a6bd?mode=detail&view=horizontal&q=dolfijn&rows=1&page=5&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1900-1924_Flotieljevaartuig_Assahan.jpg 400>>
//<<mouseover "Schroefstoomschip (flottieljevaartuig)" Schroefstoomschip>> [[Assahan (1900)]], ca. 1912.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/4a32590c-fbd9-0cbd-f9a5-564ba5f85794/media/2626d910-3ae2-fee6-66cd-1719a3c7fa4a?mode=detail&view=horizontal&q=assahan&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1930-1942_Banckert_2.jpg 400>>
//<<mouseover "Torpedobootjager" Torpedobootjager>> [[Banckert (1930)]], ca. 1936.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/c8e925b3-3ce3-167b-fd67-dd3d5b237087/media/f2321b7b-a652-6f8e-e624-dce56c5a015c?mode=detail&view=horizontal&q=Banckert&rows=1&page=4&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1920-1924_Flotieljevaartuig_Assahan_2.jpg 400>>
//<<mouseover "Schroefstoomschip (flottieljevaartuig)" Schroefstoomschip>> [[Assahan (1900)]] als vliegtuigmoederschip, ca. 1922.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/77bc8a6c-95c5-4011-0fa7-913ab80fcbeb/media/5750ffe7-f6b8-dd6a-02f1-a20e9b29acaf?mode=detail&view=horizontal&q=assahan&rows=1&page=5&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1935_Fazant.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Fazant (1932)]], 1935.//
<<imageh 1935_Merel_als_vliegtuigmoederschip.jpg 400>>
//<<mouseover Ondersteuningsschip Ondersteuningsschip>> [[Merel (1928)]] als vliegtuigmoederschip, 1935.//
<<imageh 1932-1942_Den_Helder_Mijnenlegger_Gouden_Leeuw_3.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Gouden Leeuw (1932)]], ca. 1937.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/507d1a8b-d04a-288c-96a2-02c8273e0c7d/media/29cf8af5-1575-55bf-b216-c19721dc6cd6?mode=detail&view=horizontal&q=gouden%20leeuw&rows=1&page=4&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1951-1967_Hercules_2.jpg 400>>
//<<mouseover Duikwerkschip Ondersteuningsschip>> [[Hercules (1951)]], ca. 1959.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/3794a5dc-4f28-525a-f37a-e1397401585c/media/fc560201-a82f-953f-72de-0cf4f776407e?mode=detail&view=horizontal&q=hercules&rows=1&page=3&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1919-1933_Mijnenlegger_Hercules.jpg 400>>
//<<mouseover Mijnenlegger Mijnenlegger>> [[Hercules (1919)]], ca. 1926.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/10c960b3-83e8-1be3-1307-e378f00ed991/media/731b22e4-aa27-269a-3933-0ef6804ed2fe?mode=detail&view=horizontal&q=Hercules&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&fq%5B%5D=search_s_tw_all:%22mijnenleggers%22&filterAction]]//
<<imageh 1913_Vlissingen_afbouw_torpedobootjagers_Hermelijn_Lynx.jpg 400>>
//Vlissingen, afbouw <<mouseover torpedobootjagers Torpedobootjager>> [[Hermelijn (1913)]] en [[Lynx (1913)]], 1913.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/c789c1da-a182-3222-77a9-d56f87b3a928/media/8667d1c4-c0a5-0f9a-e5fe-72032fb4bde3?mode=detail&view=horizontal&q=hermelijn&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1923_Aden_Pelikaan_KII_KVII_KVIII.jpg 400>>
//Aden, de Pelikaan-divisie onderweg naar Nederlands-Indië, 1923.<br><<mouseover Onderzeebootmoederschip Ondersteuningsschip>> [[Pelikaan (1922)]] en de <<mouseover duikboten Duikboot>> [[KII (1922)]], [[KVII (1922)]] en [[KVIII (1922)]] <br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/ebc5e56b-6727-7922-715f-b17ce46f22a4/media/f0f0ffc9-84af-5cab-8389-16f272044b84?mode=detail&view=horizontal&q=K%20VIII&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&filterAction]]//
<<imageh 1943-1944_Duikboot_O19.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[O19 (1939)]], ca. 1943.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/3f6bb91a-d40d-c09e-b9cf-176903cd2b1c/media/31bd2b23-2c3b-7922-bc67-10d98a2ac2d6?mode=detail&view=horizontal&q=O%2019&rows=1&page=8&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1920_Noordzee_Proefvaart_duikboot_KV.jpg 400>>
//<<mouseover Duikboot Duikboot>> [[KV (1920)]] tijdens de proefvaart op de Noordzee, 1920.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/f2092f13-83b8-60e8-cfd2-853ce418421a/media/06715541-c29d-c0e3-9c3f-f4fa5abf6c64?mode=detail&view=horizontal&q=K%20V&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1907_Den_Helder_Lynx.jpg 400>>
//<<mouseover Kanonneerboot Kanonneerboot>> [[Lynx (1875)]] te Den Helder, 1907.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/247d3659-5a8a-2141-07b1-10c91f988a01/media/a7fc09f0-5356-a23a-d19a-cbf69b3c36cc?mode=detail&view=horizontal&q=Los&rows=1&page=9&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1946-1949_Mijnenveger_Marsdiep.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Marsdiep (1947)]] (M834), ca. 1948.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/3750e400-2e44-61d4-7ae3-52fcf3ce9cb7/media/76bc4c14-ff82-1411-ef42-840eb5ff022e?mode=detail&view=horizontal&q=marsdiep&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1954_Dordrecht_mijnenvegers_Texelstroom_Vliestroom.jpg 400>>
//<<mouseover Mijnenvegers Mijnenveger>> [[Texelstroom (1947)]] (M836) en [[Vliestroom (1947)]] (M837) te Dordrecht, 1954.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/650de17d-73e1-9174-ebd4-faf5fb68a725/media/e5127d60-85ce-2260-525a-5cc3274026a2?mode=detail&view=horizontal&q=texelstroom&rows=1&page=10&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1954_Dordrecht_mijnenvegers_Borndiepklasse.jpg 400>>
//<<mouseover Mijnenvegers Mijnenveger>> [[Hollandsch Diep (1946)]] (M833), [[Volkerak (1946)]] (M838) en [[Marsdiep (1947)]] (M834) te Dordrecht, 1954.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/626dd12e-5018-799b-d087-9041a2204dfc/media/7d23913f-923d-0caa-aa7b-a124ddc31415?mode=detail&view=horizontal&q=Volkerak&rows=1&page=7&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1953_ca_Deurloo_M832.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Deurloo (1946)]] (M832), ca. 1953.<br>© [[onzevloot|https://onzevloot.weebly.com/hrms-deurloo.html]]//
<<imageh 1953_ca_Oosterschelde_M835.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Oosterschelde (1947)]] (M835), ca. 1953.<br>© [[onzevloot|https://onzevloot.weebly.com/hrms-oosterschelde.html]]//
<<imageh 1952_ca_Westerschelde_M839.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Westerschelde (1946)]] (M839), ca. 1953.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/39b3e5bd-4727-1c96-958a-cd3e576b1f0b/media/6a2080db-641c-fd3e-dcf4-79d423f54454?mode=detail&view=horizontal&q=westerschelde&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1953_ca_Zuiderdiep_M840.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Zuiderdiep (1947)]] (M840), ca. 1953.<br>© [[onzevloot|https://onzevloot.weebly.com/hrms-zuiderdiep.html]]//
<<imageh 1972_Zomer_M883.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Zomer (1961)]] (M883), 1972.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/0099df1e-9201-0ca3-867c-26ae324f07c5/media/04f3fef9-fe1d-0b5c-b9d8-7c0742ac345f?mode=detail&view=horizontal&q=zomer&rows=1&page=5&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1962-1983_Houtepen_M882.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Houtepen (1962)]] (M882), ca. 1972.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/5b0caa94-813c-f3be-0320-6363e5903527/media/13a118a5-1cdc-eb6b-536f-48953856af0b?mode=detail&view=horizontal&q=houtepen&rows=1&page=12&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1960-1982_Lacomblé_M870.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Lacomblé (1960)]] (M870), ca. 1971.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/89b035fd-658a-2e0e-ef04-3b748f7826f1/media/28b55971-5862-1d3b-d2bd-cf8fd2e13905?mode=detail&view=horizontal&q=Lacombl%C3%A9&rows=1&page=24&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1961-1983_Mahu_M880.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Mahu (1961)]] (M880), ca. 1971.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/f2c67f73-de21-5dfa-53d8-70ae035962f4/media/dad9eaf8-6a25-4386-ff83-5c1dd029ab29?mode=detail&view=horizontal&q=mahu&rows=1&page=4&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1962-1986_Staverman_M881.jpg 400>>
//<<mouseover Mijnenveger Mijnenveger>> [[Staverman (1962)]] (M881), ca. 1973.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/b6a92de2-ef6c-de98-4e06-edcb514c761a/media/cdadefef-8efe-5fc5-f09c-80639fc3bc91?mode=detail&view=horizontal&q=staverman&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&filterAction]]//
<<imageh 1998_Poema_P812.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> (z.g. kustwachtkotter) [[Poema (1999)]], 1999.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/16748af7-6a3f-bec3-be7e-180083c5dc80/media/f951f4f3-7fa3-cdc9-609b-3d6afc582e28?mode=detail&view=horizontal&q=poema&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 2001_Panter_P811.jpg 400>>
//<<mouseover Patrouilleschip Patrouilleschip>> (z.g. kustwachtkotter) [[Panter (1999)]], 2001.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/0cfe9706-388e-8c02-8cde-ccb5e438bf73/media/42784b5b-5593-9b8f-6ee6-a196fed0ec8d?mode=detail&view=horizontal&q=panter&rows=1&page=95&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh Mijnenjager_Haarlem_M853.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Haarlem (1984)]] (M853), ca. 1998.//
<<imageh Mijnenjager_Harlingen_M854.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Harlingen (1984)]] (M854), ca. 1994.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/428b035b-291c-e077-a4c1-58a9bef751de/media/0f405fc2-6a4e-67cd-28b1-4aa848943345?mode=detail&view=horizontal&q=harlingen&rows=1&page=5&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1987_Mijnenjager_Maassluis_M856.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Maassluis (1984)]] (M856), ca. 1998.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/4beb023c-fc1e-6769-1498-56c819284f9c/media/1550fea2-f8a1-d7d0-74c2-0571cc73fcb9?mode=detail&view=horizontal&q=maassluis&rows=1&page=4&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 2007_Mijnenjager_Makkum_M857.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Makkum (1985)]] (M857), 2007.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/4b1a7a44-cb38-ea81-1653-d31b95c34f57/media/08544a80-1ec9-d2c6-f574-d29ec1d3c2a3?mode=detail&view=horizontal&q=makkum&rows=1&page=24&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh Mijnenjager_Scheveningen_M855.jpg 400>>
//<<mouseover Mijnenjager Mijnenjager>> [[Scheveningen (1984)]] (M855), ca. 1993.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/a09a0593-e226-0938-492f-c396ef11c498/media/6213ab6e-b485-cfc5-a436-421a3feb72e2?mode=detail&view=horizontal&q=scheveningen&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&fq%5B%5D=search_s_tw_all:%22Mijnendienst%22]]//
<<imageh Mijnenveger_Batjan_P10.jpg 400>>
//<<mouseover Korvet Korvet>> [[Batjan (1946)]] (P10), ca. 1948.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/7d37de44-4fef-8538-56e9-326407938b78/media/ae48ac8d-72c3-9d91-4aa1-a9b87d48a26d?mode=detail&view=horizontal&q=Batjan&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1982-2003_Bloys_van_Treslong_F824.jpg 400>>
//<<mouseover Fregat Fregat>> [[Bloys van Treslong (1982)]] (F824), ca. 1993.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/a0436b09-f95d-82ad-fd20-77b3613a6045/media/8fce9583-532e-d68b-d9d0-5ab152c6952f?mode=detail&view=horizontal&q=Bloys&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1979-1994_Fregat_Callenburgh_F808.jpg 400>>
//<<mouseover Fregat Fregat>> [[Callenburgh (1979)]] (F808), ca. 1986.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/634e66ac-7061-7b28-23f1-43de02c4c9d5/media/d155c92e-c370-943f-8db6-68f90f32e863?mode=detail&view=horizontal&q=callenburgh&rows=1&page=12&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1983-2001_Fregat_Jan_van_Brakel_F825.jpg 400>>
//<<mouseover Fregat Fregat>> [[Jan van Brakel (1983)]] (F825), ca. 1992.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/f7bf13d6-8366-3e8e-16b9-01e9e56afd0d/media/1ad83c75-df53-e95e-fd24-58e236487126?mode=detail&view=horizontal&q=Jan%20van%20Brakel&rows=1&page=7&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1982-1997_Fregat_Kortenaer_F807.jpg 400>>
//<<mouseover Fregat Fregat>> [[Kortenaer (1978)]] (F807), ca. 1989.<br>© [[NIMH]]//
<<imageh 1981-2002_Fregat_Philips_van_Almonde_F823.jpg 400>>
//<<mouseover Fregat Fregat>> [[Philips van Almonde (1981)]] (F823) te Curaçao, 1987.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/3ea3c086-da7f-ef43-cd60-f129203ace0e/media/473d9036-8e3b-f845-97c4-e156e69434f3?mode=detail&view=horizontal&q=Philips%20van%20Almonde&rows=1&page=5&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1983-2001_Fregat_Pieter_Florisz_F826.jpg 400>>
//<<mouseover Fregat Fregat>> [[Pieter Florisz (1983)]] (F826), ca. 1992.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/98300627-cfc8-337c-cd41-1b76ea5afe63/media/66911904-848f-eaa6-c812-f96f0225de4c?mode=detail&view=horizontal&q=Pieter%20Florisz&rows=1&page=14&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1980-1995_Fregat_Van_Kinsbergen_F809.jpg 400>>
//<<mouseover Fregat Fregat>> [[Van Kinsbergen (1980)]] (F809), ca. 1987.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/3399bd1e-2f75-c9cf-e630-6c4e3df6eb14/media/f49f832e-f9a5-d688-4643-145804838838?mode=detail&view=horizontal&q=van%20kinsbergen&rows=1&page=27&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1968-1990_Fregat_Isaac_Sweers_F814.jpg 400>>
//<<mouseover Fregat Fregat>> [[Isaac Sweers (1968)]] (F814), ca. 1979.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/01ce51d1-d4c9-0c24-5415-50c8376511de/media/fe70fd6c-02a1-6029-c67d-3c5e89e6a017?mode=detail&view=horizontal&q=Isaac%20Sweers&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1967-1986_Fregat_Tjerk_Hiddes_F804.jpg 400>>
//<<mouseover Fregat Fregat>> [[Tjerk Hiddes (1967)]] (F804), ca. 1984.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/4dc4aa36-a038-d894-8ac7-9ceea4bb472b/media/9e6253d6-585c-b7af-1274-b08c7f312eb9?mode=detail&view=horizontal&q=Tjerk%20Hiddes&rows=1&page=11&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1967-1987_Fregat_Van_Galen_F803.jpg 400>>
//<<mouseover Fregat Fregat>> [[Van Galen (1967)]] (F803), ca. 1984.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/dac5bc97-c61a-2dd4-170e-6316f9aab98d/media/8cd7b9a9-6a15-bd1d-8d3a-03f544542e67?mode=detail&view=horizontal&q=van%20galen&rows=1&page=21&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1967-1988_Fregat_F805_Van_Nes_F805.jpg 400>>
//<<mouseover Fregat Fregat>> [[Van Nes (1967)]] (F805), ca. 1974.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/a0070498-7029-4ed1-f499-45f5398b8005/media/f100be9a-572d-cc83-0ff1-ab04110b74b5?mode=detail&view=horizontal&q=van%20nes&rows=1&page=25&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1967-1986_Fregat_Van_Speijk_F802.jpg 400>>
//<<mouseover Fregat Fregat>> [[Van Speijk (1967)]] (F802), ca. 1974.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/3c4b9857-a534-13b6-e793-74aa8e69be02/media/6d44e352-6932-9fec-2584-db6696c2a54b?mode=detail&view=horizontal&q=Van%20Speijk&rows=1&page=40&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1933_Oosterschelde_Koningin_Emma.jpg 400>>
//Oosterschelde met veerboot Koningin Emma (Katseveer-Zierikzee), 1933.<br>
Deze veerboot was de latere <<mouseover hulpmijnenlegger Mijnenlegger>> [[Koningin Emma (1940)]], 1933.<br>© [[DEZB|https://digitaal.dezb.nl/beeldbank/detail/9e9bef42-97d0-11e3-81cc-2386de32d4f6/media/5c233ada-d8ba-d373-5261-3d521f206369?mode=detail&view=horizontal&q=Koningin%20Emma&rows=1&page=17]]//
<<imageh 1946_ca_Prins_Willem_I.jpg 400>>
//Veerboot Prins Willem I, ca. 1946.<br>
Deze veerboot was de vroegere <<mouseover hulpmijnenlegger Mijnenlegger>> [[Prins Willem I (1940)]].<br>© [[PSDNET|https://www.psdnet.nl/foto-prins-willem-1/]]//
<<imageh 1938_ca_Veerboot_Prins_Willem_I_bezoek_Wilhelmina_Juliana.jpg 400>>
//Bezoek van koningin Wilhelmina en prinses Juliana aan de veerboot Prins Willem I, ca. 1938.<br>
Deze veerboot was de latere <<mouseover hulpmijnenlegger Mijnenlegger>> [[Prins Willem I (1940)]].<br>© [[DEZB|https://digitaal.dezb.nl/beeldbank/detail/394ef9ee-97d1-11e3-899c-f75c4f13fed9/media/56d7a0c2-9617-ef2f-f6de-32ba60ae47e7?mode=detail&view=horizontal&q=Prins%20Willem%20I&rows=1&page=28]]//
{{||$:/_ship_template}}
* <<slider "Mijnenjager Scheveningen ca. 1993" Schepen467>>
{{||$:/_ship_template}}
* <<slider "Mijnenjager Schiedam 2006" Schepen177>>
{{||$:/_ship_template}}
* <<slider "Ramtorenschip Schorpioen ca. 1890" Schepen413>>
* <<slider "Ramtorenschip Schorpioen ca. 1890" Schepen414>>
* <<slider "Ramtorenschip Schorpioen 2009" Schepen041>>
In 1908 omgebouwd tot logementsschip. Ook door de Duitsers als zodanog gebruikt.<br>
In 1947, werd de Schorpioen in Hamburg teruggevonden en weer als logementsschip gebruikt, eerst in Amsterdam en later, van 1951 tot 1971, voor de MARVA in Den Helder.<br>In 1982 werd het ramschip aangekocht door de Stichting Ramschip Schorpioen om het in Middelburg voor publiek aan de kade te leggen. Na een lange restauratie in 1989 open.<br>
In 1998 kocht de Marine het schip terug van de stichting en werd het naar het Marinemuseum in Den Helder gebracht. In 2000, na een restauratie van achttien maanden, werd het als museumschip opengesteld voor het publiek.
!!!! Schroefstoomschepen van de Nederlandse marine (alle voor 1900)
|''Klasse/prototype''|''Type''|''Dienstperiode'' ^^1^^ |''Aantal''|''Schepen in klasse''|''Opmerkingen''|h
|''Aruba''|Schroefstoomschip 4e klasse| 1873-1909? | 1 |{{Aruba (1873)!!ships}}|3-master, klippersteven|
|''Alkmaar''|schroefstoomschip 3e klasse| 1874-1900 | 1 |{{Alkmaar (1874)!!ships}}|3-master, klippersteven|
|''Batavia''|Schroefstoomschip 4e klasse| 1876-1906 | 8 |{{Bali (1878)!!ships}}|3-master, klippersteven|
|''Suriname''|Schroefstoomschip 4e klasse| 1877-1907 | 1 |{{Suriname (1877)!!ships}}|3-master, klippersteven|
|''Atjeh-klasse''|Schroefstoomschip 1e klasse| 1877-1908 | 6 |{{Atjeh (1877)!!ships}}|3-master, klippersteven|
|''Sommelsdijk''|Schroefstoomschip 4e klasse| 1884-1912 | 1 |{{Sommelsdijk (1884)!!ships}}|3-master, klippersteven|
|''Java''|Schroefstoomschip 4e klasse| 1886-1906 | 1 |{{Java (1886)!!ships}}|3-master, ramsteven|
|''Ceram''|Schroefstoomschip 4e klasse| 1887-1907 | 2 |{{Ceram (1887)!!ships}}|2-master, klippersteven|
|''Lombok''|Schroefstoomschip 4e klasse| 1891-1911 | 2 |{{Lombok (1891)!!ships}}|2-master, klippersteven|
|''Borneo''|Schroefstoomschip 4e klasse| 1892-1906 | 1 |{{Borneo (1892)!!ships}}|3-master, rechte steven|
|''Nias-klasse''|Schroefstoomschip 4e klasse| 1896-1921 | 4 |{{Edi (1897)!!ships}}|2-master, rechte steven|
|''Koetei-klasse''|Schroefstoomschip 4e klasse| 1898-1931 | 3 |{{Assahan (1900)!!ships}}|2-master, rechte steven|
!!! Schroefstoomschip
Een schip zonder pantser, ook wel onbeschermde kruiser genoemd. Voor voortstuwing werd stoom en een schroef gebruikt.<br>In eerste instantie waren schroefstoomschepen ook voorzien van zeilen, later niet meer.
<<w>>
Er zijn nog maar zeven schroefstoomschepen over in de wereld. Vier grote: de SS Great Britain in Bristol, HMS Warrior in Portsmouth, de Fram in Oslo en de Jylland in Ebeltoft (Denemarken). En drie kleinere: de Uruguay in Buenos Aires, HMS Gannet in Chatham en dus de Bonaire in Den Helder.<br>
Maar de Bonaire is het enige schip in dat rijtje dat een ijzeren huid heeft, die is bekleed met wel zeven centimeter dikke teakhouten balken, waardoor het lijkt alsof ook de Bonaire geheel van hout is. Dat hout is tegen de ijzeren huid geschroefd van kiel tot bovenkant verschansing.<br>
Het doel van het hout is het bevestigen van zinken platen tegen het schip tot net boven de waterlijn. De platen waren nodig om de aangroei van algen en wieren zoveel mogelijk te voorkomen. Lange slierten waterplanten, maar ook zeepokken en andere schelpdieren geven een grote weerstand bij het varen, waardoor de snelheid van het schip terug loopt.<br>
Heel lang zijn voor dit doel koperen platen gebruikt, maar de Marine wilde eens zien of zink ook hielp. Nauwelijks, zoals blijkt uit geschriften uit die tijd.<br>
Een enorm voordeel van het zink was wel, dat de ijzeren huid en de bevestigingsbouten van de houten dubbeling aan de huid door het zink beschermd werden tegen de galvanische aantasting van ijzer in zeewater. Dat was reden voor de Marine om de koperen platen op een aantal andere schepen te vervangen door deze zinken platen.<br>
Deze constructie van de huid maakt de Bonaire nu wel uniek in de wereld.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Schuiling ca. 1970" Schepen190>>
!!! Scrollbar/schuifbalk
Soms, b.v. bij het tonen van externe websites in deze wiki (via een z.g. iframe), verschijnt aan de rechterzijde een z.g. scrollbar of schuifbalk waarmee bij langere webpagina's verticaal gescrolld kan worden. Het scrollen kan zowel met de muis (cursor in het vlak van het iframe) als met de scrollbar gedaan worden.
Als voorbeeld hier mijn 'Hugo de Grootbuurt' wiki, getoond in een iframe met een hoogte van 400 pixels (dezelfde hoogte waarmee foto's getoond worden):
<iframe src="http://80.57.3.68/Amsterdam_1822-heden.html" frameborder="0" width="1024"; height="400"></iframe>
<<imageh 1900_Lohner-Porsche_Sempur_Vivus_01.jpg 250>>
//Lohner-Porsche 'Sempur Vivus', 1900/2010.//
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Serdang 1926" Schepen146>>
* <<slider "Schroefstoomschip Serdang ca. 1927" Schepen417>>
<!-- o.a. vliegtuigtender, vliegtuigmoederschip
Zie ook Assahan (1900) -->
{{NI}}<br>De Serdang is als 'flottieljevaartuig' in dienst gesteld.<br>
In 1921 omgebouwd tot mijnenlegger en als zodanig de rest van haar diensttijd gekenmerkt.<br>
Wel werden in de loop der tijd steeds andere taken toebedeeld, namelijk vanaf 1926 opnemingsvaartuig, tevens met transportcapaciteit voor watervliegtuigen; vanaf oktober 1931
toegevoegd aan het Torpedo-atelier te Soerabaja (torpedowerkschip); en tenslotte
begin 1942 als moederschip voor de Bewakingsdienst Westervaarwater.<br>In 1942 tot zinken gebracht.
{{||$:/_plane_template}}
* <<slider "Short 184 1917" Vliegtuig178>>
Een Britse Short 184 (N1232) moest op 26 september 1917 een noodlanding maken bij Borkum, wegens brandstofgebrek.<br>
Het werd in oktober in dienst genomen als K1. Het is echter nauwelijks gebruikt en in 1920 afgevoerd.
{{||$:/_plane_template}}
* <<slider "Short S.25 Sunderland Mk I 1940" Vliegtuig220>>
* <<slider "Short S.25 Sunderland Mk V ca. 1944" Vliegtuig122>>
De Sunderland was een van de krachtigste en meest verspreide vliegboten van WWII.<br>
<<slider "Revisies Short Sunderland" "Revisies Short Sunderland">>
{{||$:/_plane_template}}
* <<slider "Short S.45 Seaford ca. 1946" Vliegtuig194>>
* <<slider "Short S.45 Seaford ca. 1946" Vliegtuig221>>
!! Short
||| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[184|Short 184]]|{{Short 184!!soort}}| 1| K1| {{Short 184!!per}}|
|Type |rol |opmerkingen |h
|[[S.25 Sunderland|Short S.25 Sunderland Mk III]]|{{Short S.25 Sunderland Mk III!!soort}}||
|[[S.45 Seaford|Short S.45 Seaford]]|{{Short S.45 Seaford!!soort}}||
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Siboga 1898" Schepen094>>
{{NI}} In 1910 omgebouwd tot mijnenlegger. In 1933 uit dienst.
//Bron:// [[RUG|https://www.rug.nl/university-museum/history/prominent-professors/sibrandus-stratingh]]
<<popup "Sibrandus Stratingh" "Sibrandus Stratingh1">> werd in 1785 geboren in Adorp, waar zijn vader predikant was. Hij groeide echter op bij zijn oom die apotheker in Groningen was en ging daar naar de Latijnse school.<br>
Hij was nog geen veertien jaar oud toen hij ging studeren aan de Academie te Groningen. Hij volgde er colleges met de bedoeling dat hij later zijn oom als apotheker zou opvolgen. Aangezien hij ook grote belangstelling had voor andere wetenschappen, zoals scheikunde en natuurkunde, volgde hij ook bij andere hoogleraren college.<br>
In 1801 richtte hij samen met zijn vriend Theodorus Van Swinderen het 'Genootschap ter bevordering der natuurkundige wetenschappen te Groningen' op en in 1824 werd hij benoemd tot hoogleraar in de algemene, toegepaste en pharmaceutische scheikunde.<br>
Tijdens zijn hoogleraarschap heeft Stratingh baanbrekend werk verricht op het gebied van de voortbeweging. Zo experimenteerde hij met een eigen ontworpen stoomrijtuig, waarmee hij een proefrit maakte door de straten van Groningen.
<<slider "Provinciale Groninger Courant van 25 maart 1834" "Provinciale Groninger Courant">>
Zelfs Koning Willem I toonde zich geïnteresseerd en wilde op de hoogte gehouden worden van de Stratingh’s experimenten. Stratingh stuurde hem daarom uitgebreide rapporten over zijn bevindingen met het stoomrijtuig.
In 1837 bracht Willem I tijdens een tweedaags verblijf in Groningen een bezoek aan Stratingh’s laboratorium achter diens huis aan de Ossemarkt 5.
Naast stoomvoertuigen hield Stratingh zich ook intensief bezig met elektromagnetisme. Voortbouwend op de natuurkundige principes van de Engelsman Michael Faraday construeerde Stratingh samen met zijn instrumentmaker Becker een elektromagnetisch wagentje, dat als voorloper van de elektrische auto kan worden beschouwd.
<<slider "Elektromagnetisch wagentje" "Elektromagnetisch wagentje">>
Stratingh heeft zijn proeven met elektromagnetische voertuigen helaas niet voort kunnen zetten, want op 15 februari 1841 stierf hij. De Groninger universiteit was met zijn overlijden een belangrijk geleerde kwijtgeraakt, die zowel nationaal als internationaal bekendheid genoot.
[img[Sibrandus Stratingh|Images/Sibrandus_stratingh_small.jpg]]<br>
//Sibrandus Stratingh//
In 1923 in dienst gesteld van de {{GM}} en gestationeerd in Tandjong Priok. In de jaren '30 werd de Sirius stationschip te Makassar. Vanaf de militarisering in 1939 werd de Sirius vervangen door de [[Gemma (1918)]]. Daarna samen met de [[Bellatrix (1914)]] t.b.v. de bewaking van Straat Soenda. De twee schepen patrouilleerden bij toerbeurt en lagen daarom de helft van de tijd in Tandjong Priok.<br>
Op 19 februari 1942 werd de Bewakingsdienst West-Java in het leven geroepen en de Sirius ging hier deel van uitmaken. Op 28 februari lag de Sirius, samen met de [[Reiger (1931)]] in de Bantam-baai waar de schepen vier maal bestookt werden door Japanse bommenwerpers. Door een near miss werd de Sirius aan bakboord getroffen door een groot aantal bomscherven. Hiern werd de Sirius door eigen bemnaaning tot zinken gebracht.
!!! Slagkruiser
Een schip met de bewapening van een slagschip maar met een lichter pantser.
<<w 600px>>
!!! Slagschip
Een groot en zwaar gepantserd en bewapend type oorlogsschip.
<<w 500px>>
!! A 828 Hercules
!!! A828 Hercules 1951-1968
"""
Mslb. TEMI IV (27.12691) PHXH
Bouwjaar 1942 werf, Nobiskrug, Rendsburg, Duitsland bouwnummer 513.
Lxbxhxdg.: 35,37 x 8,56 x 4,40 x 3,30 meter, verplaatsing 279,9 grt.
1 x 12 cilinder Brons nr.15821 type 12GV-H uit 1973 vermogen 1500 apk. = 1103 kW.
bij 375 r.p.m.
namen:
1942 ATLAS Luftwaffe, Duitsland.
1944 ATLAS Bugsier, Hamburg, Duitsland.
1945 ATLAS Royal Navy, Londen, Engeland.
29-03-1950 WALCHEREN XII Key & Zn., Rotterdam.
10-01-1951 ''A828'' HERCULES Koninklijke Marine, Den Helder.
01-12-1967 ''A828'' HERCULES Dienst der Domeinen.
27-12-1968 TEMI IV T.Dijkhuizen, Vlissingen.
28-03-1982 Omgetrokken.
1988 gesloopt.
"""
De Hr. Ms. Hercules was oorspronkelijk een Duitse ijsbreker die in 1944 werd gebouwd bij de werf Nobiskrug te Rendsburg. Na de Tweede Wereldoorlog, in 1950 kwam zij onder de naam Walcheren in dienst bij Scheepvaartbedrijf Walcheren en daarna, in ''1951'', kwam het schip als zeesleper in dienst bij de Kon. Marine onder de naam ''Hr. Ms. Hercules, A 828''. Dat bleef ze tot ''1968''. Daarna ging ze opnieuw naar Zeeland en kwam in Vlissingen terecht. Daar werd ze door de rederij Dijkhuizen opnieuw als zeesleper in de vaart gebracht onder de naam Temi IV. In 1973 onderging de sleper groot onderhoud en werd er een nieuwe motor geplaatst .Op 28 maart 1982 verging het schip tijdens een assisteren van het Griekse schip de bulk carrier "Loussios". Hierbij verdronken 3 van de 4 opvarenden waaronder de kapt eigenaar T.Dijkhuizen.<br>
De Sleper gelicht op 27 april 1982 en na een lange tijd in de vlissingen gelegen te hebben naar de sloopgegegaan in 1988.<br>
Hierbij kwam er een einde in 1982 aan het sleepbedrijf en ging men over op rondvaart met de lady Lady Madeleine en de stad veere https://www.rederij-dijkhuizen.nl
<hr>
!! Sleepboot ~~Hollandia~~ Pauline
1939-1989
"""
Sleepboot ~~Hollandia~~
''Mijnenveger 4''
1940-1945 kriegsmarine
''RS7''
''A847''
''Y8262''
"""
De namen cq registraties van de A847 zijn:<br>
(Pauline), Mijnenveger 4, M4, (ZRD47, BS 9), RS7, A847, Y8262, (Thor).<br>
''Heeft dus niet de naam "Hollandia" gedragen''.<br>
Is onder de naam "Thor" nog in Zwolle te bewonderen.
<hr>
!! Antonie II (ex ''RS8'' - ''A848'' - ''Y8027'')
Mslb. ANTONIE II (27.16231)<br>
Te water 1938 opgeleverd 20-01-1939 werf, Bijlsma, Wartena bouwnummer 391.<br>
Lxbxhxdg.: 18,10 x 4,53 x 2,20 x 1,70 meter, kruiphoogte 4,20 verplaatsing 9,7 m3.<br>
1 x 3 cilinder Brons nr. 5744 type 3TL uit 1938 vermogen 150 apk. = 110 kW. bij 290 r.p.m.
"""
11-01-1939 Antonie II A. Kooren & Zn Rotterdam
15-10-1940 ANTONIE II N.V. Amsterdamsche Droogdok Maatschappij, Amsterdam.
1941 Karla Kriegsmarine (D
1942 Hoek Kriegsmarine (D)
1945 RS 8 Koninklijke Marine 's-Gravenhage
00-10-1950 A.848 Koninklijke Marine, 's-Gravenhage.
1953 Y 8027 Koninklijke Marine 's-Gravenhage
10-06-1968 DIERIK Rijkswaterstaat, Vlissingen.
10-10-1978 DIERIK Dienst der Domeinen.
27-11-1980 DIERIK P.J.E.Frantzen, Goes.
18-12-1980 DIERIK G.Gesman, Alphen aan den Rijn.
01-11-1985 CONNIE-D. (1) D.J.Bos, Amsterdam.
25-02-1988 VAGANT J.J.Schoo, Medemblik.
25-05-2000 VAGANT T.E.Wolfswinkel & P.Snippe, Heiloo.
23-10- 2001 ANTONIE II J.A.C.H.M.Lemmens, Aalst.
"""
<hr>
!! Mslb. ''A872'' ''WESTGAT''
"""
Te water 22-08-1967 in dienst 10-01-1968 werf, Rijkswerf Willemsoord, Den Helder bouwnummer 83.<br>
Lxbxhxdg.: 27,60 x 6,90 x 2,39 x 2,75 meter, verplaatsing 185 grt.<br>
1 x 12 cilinder Bolnes type KVL.V12 uit 1967 vermogen 750 apk. = 552 kW. trekkracht 11 ton, snelheid 12 knopen.
Namen:<br>
22-08-1967 A.872 WESTGAT Koninklijke Marine, Den Helder.<br>
1997 A.996 ALBATROS
"""
<hr>
!! Kust sleper ''Westgat'' - ''A873''
A872 of A873??? Onze Vloot zegt ''A872''
"""
Te water 22-08-1967 in dienst 10-01-1968 werf, Rijkswerf Willemsoord, Den Helder bouwnummer 83.
Lxbxhxdg.: 27,60 x 6,90 x 2,39 x 2,75 meter, verplaatsing 185 grt.
1 x 12 cilinder Bolnes type KVL.V12 uit 1967 vermogen 750 apk. = 552 kW. trekkracht 11 ton, snelheid 12 knopen.
De KM kust sleper Westgat - A 873 uit 1968, verkocht aan de Belgische marine in 1997.<br>
De ex. Westgat was operationeel onder de naam Albatros - A996 bij de Belgische Marine sedert september 1997. Functie 'Ready Duty Ship' tot eind 2014.
Namen:
22-08-1967 A.872 WESTGAT Koninklijke Marine, Den Helder.
1997 A.996 ALBATROS
"""
<hr>
!! Oranje Mslb. ALBERT V. (20.08442)
"""
Bouwjaar 1939 werf, Van den Beldt, West-Graftdijk.
Lxbxdg.: 19,10 x 4,80 x 1,86 meter, kruiphoogte 4,65 verplaatsing 15,5 m3.
1 x 6 cilinder Cummins uit 1988 vermogen 425 apk. = 313 kW.
Namen:
29-04-1939 ORANJE (20.0172 W.van Laar Hoorn.
25-08-1939 ''ORANJE'' Koninklijke Marine, Enkhuizen.
14-05-1940 W.Sch.P.33 Wasserschutzpolizei IJsselmeer flottielje, Duitsland.
00-05-1940 Unternehmen Seelöwe, Duitsland.
19-02-1942 Luftwaffe, Duitsland.
1945 G.B.1 Grensbewaking
1945 R.V.5 (20.02229) Koninklijke Marechaussee, Delfzijl.
07-05-1981 JAN I H.A.Theuns, Zwijndrecht.
15-09-1981 ALBERT V. J.Viswat, Groningen.
"""
<hr>
!! B.V.36
"""
Sslb. BRABANT (27.01387) NHFW
Bouwjaar 1920 werf, Jonker & Stans, Hendrik Ido Ambacht bouwnummer 142.
Lxbxh.: 48,20 x 8,87 x 4,24 meter, verplaatsing 449 brt.
2 x 2 vuurs De Schelde ketels nr. 886 en 887 uit 1920 verwarmd oppervlak 114 m2, werkdruk 13,5 atm.
1 x 3 cilinder Alblasserdammer Machine Fabriek uit 1920 vermogen 1000 ipk. = 736 kW.
Namen:
23-04-1920 BRABANT J.F.Wijsmuller, Rotterdam.
02-09-1927 INDUS PEWI L.Smit & Co's Internationale sleepdienst Maatschappij N.V., Rotterdam.
24-08-1939 ''B.V.36 ''Koninklijke Marine, Den Helder.
17-05-1940 LAZ.11 Lazerett Verband, Duitsland.
25-01-1941 BS.IV Bergungsschiffe Verband, Duitsland.
20-11-1942 Verloren gegaan bij Hoek van Holland bij een luchtaanval.
"""
<hr>
!! Mslb. FURIE (23.23901)
"""
Bouwjaar 1930 werf, Coevorden.
Lxbxdg.: 16,04 x 4,22 x 1,55 meter, verplaatsing 6,7 m3.
1 x 3 cilinder Deutz nr.531804/06 type OM.130 uit vermogen 105 apk. = 77 kW.
Namen:
23-10-1930 AGATHA (23.04940) E.van Veen, Papendrecht.
06-06-1934 AGATHA N.V. Rotterdamsche Scheepshypotheekbank, Rotterdam.
02-03-1938 ELLY J.Sterling, Antwerpen, België.
20-09-1938 ELLY G.F.P. & J.G.van der Peijl, Terneuzen.
21-09-1940 ELLY N.V. Amsterdamsche Droogdok Maatschappij, Amsterdam.
1946 ''K.M.8'' Koninklijke Marine, Den Helder.
194? ''R.S.12'' Koninklijke Marine, Den Helder.
29-11-1951 ''A852'' Koninklijke Marine, Den Helder.
1953 ''Y8010'' Koninklijke Marine, Den Helder.
13-04-1966 Uit dienst.
24-05-1966 Dienst der domeinen.
01-07-1966 ELLY A.Westerhuis, Zwartsluis.
1983 ELLY R.de Rijke, Beneden Leeuwen.
"""
<hr>
!! Mslb. PHOENIX (21.04310)
"""
Bouwjaar 1913 werf, 't Hondsbosch, Alkmaar bouwnummer 679.
Lxbxhxdg.: 21,30 x 5,16 x 2,85 x 2,10 meter, verplaatsing 18,8 m3.
1 x 3 cilinder Bolnes type 112D van 19?? inbouw 1973 vermogen 150 apk. = 110 kW. bij 430 r.p.m.
Namen:
15-08-1913 KROMHOUT VIII D.Goedkoop Jr., Amsterdam.
00-08-1915 ''VOORWAARTS'' Koninklijke Marine, Zierikzee.
17-05-1940 Door Koniklijke Marine in Breskens tot zinken gebracht
194? Gelicht door de Duitsers hersteld voorzien een Skoda motor.
1945 VOORWAARTS Ministerie van Financiën.
03-03-1954 ''Y8114'' ''VOORWAARTS'' Koninklijke Marine, Zierikzee.
1960 ''Y8114'' ''VOORWAARTS'' Koninklijke Marine, Den Helder.
29-12-1967 ''Y8114'' ''VOORWAARTS'' Dienst der Domeinen.
09-08-1968 Y.8114 Stolk's Handelsonderneming, Hendrik Ido Ambacht.
04-06-1969 Y.8114 J. & G.van de Marel, Viane en Oosterhout.
22-02-1971 MOBY DICK L.J.Stevens, Vlissingen.
29-09-1971 PHOENIX H.F.Heijting, Eindhoven.
"""
<hr>
!! Tijgerhaai
"""
Mdsb. TIJGERHAAI (23.14240) PD-2281
Bouwjaar 1915 werf, Van der Windt en Kreber, Vlaardingen.
Lxbxhxdg.: 18,60 x 4,73 x 2,20 x 2,00 meter, kruiphoogte 4,10 verplaatsing 6,9 m3.
1 x 10 cilinder Mercedes nr.403*910*006*015817 type OM.403 uit 1954 vermogen 320 apk. = 235 kW.
Namen:
1915 FREDERIKA IV (1) I.A.Kreber, Vlaardingen.
28-06-1918 PONTONNIERSDIENST Pontonniersdienst, Dordrecht.
1926 ''TD.IV'' Torpedodienst, Scheveningen.
1930 KPT.4 Korps Pontonniers en Torpedisten.
1945 RV.4 Rijksvaartuigendienst.
02-04-1975 TIJGERHAAI (2) L.Polderman, Hansweert.
1993 TIJGERHAAI J.Vlaming, Zierikzee.
18-09-1997 TIJGERHAAI K.J.Nienhuis, Zoutkamp.
10-02-2000 TIJGERHAAI V.O.F. Tijgerhaai E.W.J.F.Braaksma, Rotterdam.
staat te koop
"""
<hr>
!! Wambrau
"""
Bouwjaar 1956 werf, Rijkswerf Willemsoord, Den Helder bouwnummer 52.
Lxbxhxdg.: 26,38 x 6,6 x 3,05 x 2,05 meter, verplaatsing 154 brt.
1 x 8 cilinder Werkspoor uit 1956 vermogen 500 apk. = 368 kW.
Namen:
1956 ''A871'' ''WAMBRAU'' Koninklijke Marine, Den Helder.
1987 SEA DRIVER II J.Th.Mos, Enkhuizen.
198? JOSEPHINE Geo. Gradel Co.,Toledo, Ohio, Amerika.
"""
<hr>
!! Mslb. A873 WIELINGEN
"""
Bouwjaar 1968 werf, Willemsoord, Den Helder bouwnummer 84.
Lxbxhxdg.: 27,88 x 6,50 x 2,39 x 2,75 meter, verplaatsing 119 grt.
1 x 12 cilinder Bolnes nr.2297 type KVL.V12 uit 1968 vermogen 750 apk. = 552 kW.
Namen:
31-05-1968 ''A873'' ''WIELINGEN'' Koninklijke Marine, Den Helder.
26-05-1992 PIETER Rederij Waterweg B.V., Workum.
13-04-1999 PIETER Coastal Shipping B.V. Workum
"""
<hr>
!! Motorsleepboot "DE-BARRI"
"""
Type: 4VD6A
Eigenaar: Hans Vriend
Enkhuizen
Het schip, de motorsleepboot werd in 1942 op stapel gezet door Hr. H. Groot en Hoekstra te Dordrecht. Gebouwd op de werf Boot te Alphen aan den Rijn, met als bouwnummer 1173. De afmetingen van de schip zijn 20.00 L x 5,25 Br. x 1.80 Dg. Te water gelaten in 1944 en genaamd "JADE"
Door de KM. Kriegsmarinewerft, Wilhelmshaven Duitsland ingenomen. De INDUSTRIE is nieuw van de fabriek geleverd op 25 april 1944 aan Koster, Wesseloh & Wichmann en geïnstalleerd in het schip, ''JAD''.
1946 overgegaan als ''ONDERZEEDIENST IV'' naar koninklijke Marine, Den Helder.
194? ''RS 17'' Koninklijke Marine, Den Helder.
1953 ''A857'' Koninklijke Marine, Den Helder.
1967 ''Y8014'' Koninklijke Marine, Den Helder.
1988 "Y.8014" R. de Rijke & C.A. van Dijk, Beneden Leeuwen.
1998 "JADE" F. Scholten, Enkhuizen.
2000 "DE BARRI" J.J. Vriend, Enkhuizen.
28-02-2000 opnieuw teboekgesteld te Rotterdam
Brandmerk, 24556 B R 2000
"""
<hr>
!! Naam: FIGORE, ex ''Y8022''
"""
Eigenaar: Marc Renssen
Bouwjaar: 1939
Werf: Barkmeijer, Stroobos
Motor: INDUSTRIE 3VD6 120 PK
Afmetingen: 18,5 x 4,5 x 1,9 x H 4,0 m
"""
<hr>
!! Y8027 Mslb. ANTONIE II (27.16231)
"""
Te water 1938 opgeleverd 20-01-1939 werf, Bijlsma, Wartena bouwnummer 391.
Lxbxhxdg.: 18,10 x 4,53 x 2,20 x 1,70 meter, kruiphoogte 4,20 verplaatsing 9,7 m3.
1 x 3 cilinder Brons nr. 5744 type 3TL uit 1938 vermogen 150 apk. = 110 kW. bij 290 r.p.m.
Namen:
11-01-1939 ANTONIE II (1)(23.06047) A.Kooren & Zn., Rotterdam.
15-10-1940 ANTONIE II N.V. Amsterdamsche Droogdok Maatschappij, Amsterdam.
1941 KARLA Kriegsmarine, Duitsland.
194? HOEK Kriegsmarine, Duitsland.
1945 ''R.S.8'' Koninklijke Marine, 's-Gravenhage.
00-10-1950 ''A848'' Koninklijke Marine, 's-Gravenhage.
1953 ''Y8027'' Koninklijke Marine, 's-Gravenhage.
10-06-1968 DIERIK Rijkswaterstaat, Vlissingen.
10-10-1978 DIERIK Dienst der Domeinen.
27-11-1980 DIERIK P.J.E.Frantzen, Goes.
18-12-1980 DIERIK G.Gesman, Alphen aan den Rijn.
01-11-1985 CONNIE-D. (1) D.J.Bos, Amsterdam.
25-02-1988 VAGANT J.J.Schoo, Medemblik.
25-05-2000 VAGANT T.E.Wolfswinkel & P.Snippe, Heiloo.
23-10- 2001 ANTONIE II J.A.C.H.M.Lemmens, Aalst.
"""
<hr>
!! Mslb. Y8028 Eems
"""
Bouwjaar 1939 werf, Vos & Zn., Groningen bouwnummer 156.
Lxbxhxdg.: 18,24 x 4,82 x 2,16 x 1,80 meter,
kruiphoogte 4,20
verplaatsing 41 m3.
1 x 5 H.M.G. uit 1939 vermogen 250 apk. = 184 kW.
1 x 4 cilinder Bolnes nr.2087 uit 1963 vermogen 200 apk. = 147 kW. bij 430 r.p.m.
Namen:
07-07-1939 EEMS (22.01921) Wed. H.van der Luit-Willeman, Delfzijl.
07-03-1940 EEMS V.O.F. Fa. Gebr. K., T. & A.van der Luit, Delfzijl.
24-08-1940 EEMS Amsterdamsche Droogdok Maatschappij N.V., Amsterdam.
1941 EEMS Duitse Kriegsmarine te Granville, Frankrijk.
10-12-1951 EEMS Staat der Nederlanden departement van Financiën, 's-Gravenhage.
10-12-1951 ''KM.15'' Koninklijke Marine, Den Helder.
1951 ''RS.28'' Koninklijke Marine, Delfzijl.
1952 ''A868'' Koninklijke Marine, Den Helder.
1953 ''Y8028'' Koninklijke Marine, Den Helder.
27-11-1990 EEMS (25.09164) E.R.Curiel, Amsterdam.
"""
!! Y.8032 Mslb. ALCYON (23.12647)
"""
Bouwjaar 1939 werf, De Jong & Smit, IJsselmonde.
Lxbxhxdg.: 18,22 x 4,86 x 1,85 x 1,50 meter, kruiphoogte 3,72 verplaatsing 12 m3.
1 x 8 cilinder Caterpillar nr.99U1807 uit 1980 vermogen 365 apk. = 268 kW.
namen:
08-08-1939 SIJA J.Engelsman & Zn., Badhoevedorp.
29-08-1939 SIJA Koninklijke Marine IJsselmeer Flottielje, Enkhuizen.
15-05-1940 Unternehmen Seelöwe, Duitsland.
00-05-1945 ''K.M.05'' MARVA Koninklijke Marinewerf, Den Helder.
1947 ''R.S.10'' Koninklijke Marine, Den Helder.
1950 ''A810'' Koninklijke Marine, Den Helder.
1953 ''Y8032'' Koninklijke Marine, Den Helder.
19-09-1968 TEXEL J.R.Gijsbers, Zwijndrecht.
15-01-1985 ALCYON De Boer Baggerbedrijf B.V., Papendrecht.
"""
!! Y8037 Hr. Ms. BERKEL
"""
Mslb. Y8037 Hr. Ms. BERKEL
Te water 29-09-1956 opgeleverd 27-12-1956 werf, N.V. Scheepswerven v/h. H.H.Bodewes, Millingen bouwnummer 507.
Lxbxhxdg.: 25,10 x 5,97 x 2,84 x 2,45 meter, verplaatsing 93,4 grt.
1 x 8 cilinder Werkspoor nr.1498 type TMAF-278 uit 1956 vermogen 600 apk. = 441 kW.
Namen:
27-12-1956 Hr. Ms. ''BERKEL'' ''Y8037'' Koninklijke Marine, Den Helder.
14-09-1989 BERKEL (25.09090) V.O.F. Gebroeders Oldenhage, Lisserbroek.
06-02-1998 Ms. BERKEL P.F.van Koningsbruggen, Den Helder.
Te koop 220.000 euro
"""
!! Mslb. Y8038 DINTEL
"""
Te water 17-11-1956 opgeleverd 23-01-1957 werf, N.V. Scheepswerven v/h. H.H.Bodewes, Millingen bouwnummer 508.
Lxbxhxdg.: 25,90 x 6,27 x 2,84 x 2,38 meter, verplaatsing 93 grt. of 263,6 m3.
1 x 8 cilinder Werkspoor nr.1498 type TMAF278 uit 1956 vermogen 500 apk. = 368 kW. bij 325 r.p.m.
Namen:
23-01-1957 ''Y8038'' ''DINTEL'' Koninklijke Marine, Den Helder.
01-01-1988 ''Y8038'' ''DINTEL'' Domeinen.
22-05-1988 NOORDGAT (26.05628) PGHV I. & C.Rijf, West-Terschelling.
15-02-2000 NOORDGAT S.Smit & A.de Boer, Terschelling.
"""
!! Hr.Ms. Ijssel Y8040
"""
werf, N.V. Scheepswerven v/h. H.H.Bodewes,
Millingen bouwnummer 510.
Te water 19-01-1957
opgeleverd 20-03-1957
Lxbxhxdg.: 25,32 x 5,97 x 2,84 x 2,38 meter,
verplaatsing 33,6 m3.
1 x 8 cilinder Caterpillar nr.96Y01035 type 3508 uit 1992
vermogen 600 apk. = 441 kW.
Namen:
27-03-1957 Hr. Ms. ''IJSSEL'' ''Y8040'' Koninklijke Marine, Den Helder.
04-01-1988 Hr. Ms. ''IJSSEL'' ''Y8040'' Dienst der Domeinen.
24-05-1988 IJSSEL (27.17739) M.N.van Santen, Rotterdam.
07-10-1988 ERNY (3) A.F.Hulsman, Maasbracht.
22-03-1996 PROGRES F.A.W.Hulsman, Maasbracht.
22-04-1998 SANDRA-F. R.Fransbergen Holding B.V., Maasbracht.
"""
<hr>
!! Y8122
"""
De Y8122 liep in 1936 van stapel als ''Sleepdienst IV''. Het schip krijgt in de loop der tijd nog een aantal andere roepnamen, zoals ''RK 23'' (K staat voor werKboot) en ''RS 04''. In 1948 wordt het onder laatstgenoemde registratie uit dienst gesteld en opgelegd aan de Marnixkade in Den Helder, in afwachting van verkoop door de dienst der Domeinen.
Maar dan: terug naar de werf, want de Rijkswerf Willemsoord heeft behoefte aan een verwarmingsvaartuig voor marineschepen die daar voor reparatie of onderhoud liggen. De directie verzoekt daarom de Vlagofficier Materieel de RS 04 voor dit doel beschikbaar te stellen. Op 10 maart vindt de overdracht plaats en krijgt het schip als verwarmings- en stoomafgiftevaartuig voor marine schepen die voor onderhoudt op o.a. de Rijkswerf liggen een tweede leven.
Een grondige aanpassing volgt, waarbij de oorspronkelijke stoommachine wordt verwijderd. Ook de schroefas, ankers, lier- en stuurinrichting verdwijnen - op het roer na - van het schip. Het hele voorverblijf wordt gesloopt en een hoge vaste schoorsteen vervangt de oorspronkelijke lage neerklapbare pijp.
In 1956 wijzigt het roepsein nog een keer in ''Y8122'', het sein die het schip nog steeds heeft. In 1976 vindt de ombouw plaats naar oliestook en daarmee verdwijnen dan ook de kolenbunkers om plaats te maken voor olietanks.
Uiteindelijk vervalt ook de verwarmingstaak en ligt de Y8122 werkloos in het werfkanaal langs de Weststraat tot 1992. Op de Nationale Monumentendag van dat jaar komt het schip officieel onder beheer van de Stichting Nautische Monumenten. Voor de vrijwilligers van de werkgroep Y8122 van deze stichting gaat daarmee een droom in vervulling. De deur staat open voor een grondige restauratie van dit in de nautische historie van Den Helder toch unieke schip.
Lengte : 19,29 meter
Breedte : 4.97 meter
Tonnage: 20,564 ton
Diepgang : 2000 cm
Bouwjaar: 1936
Werf: Rijkswerf
"""
<hr>
!! Dombo
"""
De ''Dombo'' is in 1955 gebouwd op de Rijkswerf Willemsoord te Den Helder en in 1956 te water gelaten en zoals dat heet in dienst gesteld. Het is gedeeltelijk een leerlingenprojekt geweest. Zij is ontworpen om de grotere schepen zoals torpedojagers en onderzeeboten in en uit het droogdok te slepen. Verder is het schip ingezet voor allerlei sleepwerk, al dan niet samen met het zusterschip ''Bambi''. Ook zorgen zij er voor, in strenge winters, dat de grachten om de oude Rijkswerf open blijven. Het schip heeft dan ook een ijsbrekersteven.
Zij waren ingedeeld bij de transportdienst Rijkswerf tot deze schepen overgingen naar de havendienst van de Koninklijke Marine die het schip tot 1990 in dienst heeft als sleepboot en daarna als milieuboot. Het doek voor de Bambi is dan al gevallen en het schip is verkocht door domeinen aan een particulier. Voor de Dombo dreigde dit ook in 1995. Eind 1995 is zij echter aan de Stichting Nautische Monumenten over gedragen en in beheer van de Stichting Y8122. Deze verkrijgt haar rond 2000 in eigendom.
Lengte : 16.7 meter
Breedte : 4.8 meter
Tonnage: 16.7 ton
Diepgang : 200 cm
Bouwjaar: 1956
Werf: Rijkswerf
"""
<hr>
!! Y8016 Bambi
Een zelfde klasse boot als de Dombo dacht ik!!!
<hr>
!! Y8039 Dommel
"""
te koop
ex ned. marine sleepboot, nog in originele staat,
Werkspoor 8 cil., 25.00 x 6.30 x 2/240m, b.j. 1956,
prijs op aanvraag, inruil mogelijk,
Scheepvaartbedrijf Koehoorn Franeker, Tel.: 06-53 41 36 63
"""
<hr>
!! B.V.6
Mslb. STORTEMELK II (21.02470) PHTK<br>
Bouwjaar 1911 werf, Arnhemsche Stoomsleephelling Maatschappij, Arnhem bouwnummer 98.<br>
Lxbxhxdg.: 29,70 x 5,40 x 2,55 x 2,20 meter, verplaatsing 95 m3.<br>
1 x 8 cilinder Werkspoor uit 1946 vermogen 720 apk. = 530 kW.
"""
Namen:
1911 STAD ARNHEM II A.D.Hartman, Vreeswijk.
07-03-1918 STORTEMELK II (21.01369) N.V. Sleepboot Stortemelk, Terschelling.
28-12-1939 B.V.6 Koninklijke Marine, Den Helder.
14-05-1940 Deutsche Kriegsmarine, Duitsland.
27-03-1941 Teboekstelling doorgehaald.
15-04-1945 Te Harlingen tot zinken gebracht.
04-10-1945 STORTEMELK II N.V. G.Doeksen & Zn., Terschelling.
28-08-1986 STORTEMELK II Gebr. D. & B.van Amerongen, Amsterdam.
29-06-1988 STORTEMELK II A.Vervuurt, Suriname.
"""
<hr>
!! BV 20 Blankenburg
Blankenburg
"""
Before the Second World War, L Smit & C0's Internationale Sleepdienst in Rotterdam was ordered 4 new motor tugs. The largest was the famous "Zwarte Zee " with a power of 4200 hp and the smallest one, the "Blankenburg".
The "Blankenburg" was build by L Smit & Zn Scheeps en Werktuigbouw NV at Kinderdijk and commissioned in 1938.
In Augustus 1939 requisitioned by the Dutch Navy as surveillance vessel under the name "BV 20".
On May 14th, 1940 falls into German hands and assigned by the Bergungsschiff Verband as "BS II".
On may 8th, 1945 the tug was find back in Hook of Holland and short after that she get back in service by L. Smit & Co
Her dimensions where: Gt 124, Lt 27.14 m, Br 6.37 m, Dr 3.00 m, 10 knots
Powered by 2x 6cyl. Bolnes diesel engines on a hydraulic coupling, total power 750 hp, 1 screw.
In 1963 sold to Micoperi in Milan, Italy, name unchanged.
After rebuild she was have a completed other outlook and fit with a new Skoda engine of 700 hp
"""
<hr>
!! Sslb. Rosalie 23.02901
"""
Bouwjaar 1873 werf, J. & K.Smit, Kinderdijk bwnr. 204
Lxbxhxdg.: 19,06 x 4,26 x 2,25 x 1,8 meter, verplaatsing 27,2M
1 x 1 vuurs Goedkoop 1919 ketel uit 1912 verwarmd oppervlak 29 m2 werkdruk 9,2 atm.
1 x 2 cilinder Diepeveen, Lels & Smit uit 1873 vermogen 95 ipk. = 70 kW. bij 150 r.p.m
Ex namen:
??-??-1873 Den Briel/Minister.van Oorlog Torpedodienst, Den Briel
??-??-1924 Nieuwe Zorg/J.G.de Boer, Schiedam
14-01-1927 Rosalie/A.J.J.de Groot, Schiedam
01-02-1928 Rosalie/R.Steenbeek, 's-Hertogenbosch
01-05-1940 Jacoba/W.G.Maas, Stein
24-11-1961 Willem III (1)/W.G.Maas, Stein
08-11-1965 Willem IV/W.G.Maas, Stein
28-01-1972 Rosalie/R.Visser, Amsterdam
??-??-1975 Rosalie/T.Fransen, Amsterdam
??-06-1981 Rosalie/K.J.Key, Amsterdam
22-11-1983 Rosalie/R.Hoheisel, Zwitserland
06-05-1987 Rosalie/J.Th.Mos & K.Kok, Enkhuizen- Diever
"""
<hr>
!! Y 8014 / Onderzeedienst 4
"""
Boat Y 8014
Pennant # Y 8014, ex-A 857, ex-RS17,
ex-Onderzeedienst 4, ex-Jade.
Chronology Tugboat.
Built as Jade for private company.
1967: as A 857 Decommissioned by navy.
1967: as Y 8014 Tugboat at Den Helder navy yard.
Built 1942
Yard Boot, Alphen aan de Rijn
Attached to the
Submarine Service ?
Le x Be x Dr 20 m x 5.25 m x 1.80 m
Tonnage 75 t
Engine 4-cylinder Industrie, 200 pk
Propellers 1
Complement 3
Armament None
"""
<hr>
!! Y 8015 / Onderzeedienst 5
"""
Boat Y 8015
Pennant # Y 8015, ex-A 858, ex-RS18, ex-Onderzeedienst 5,
ex-MVD 9,ex-MCTV 4.
Chronology Tugboat.
10 Jun 1968: Loaned to Diving company Den Oever.
9 Jul 1969: Scuttled in IJsselmeer as training object for divers.
Built 1938
Yard Navy yard Willemsoord, Den Helder.
Attached to the
Submarine Service ?
Le x Be x Dr 17.5 m x 4.58 m x 2 m
Tonnage 60 t
Engine As built: 4-cylinder HMG, disapproved Nov 1958.
Refit: 3-cylinder MWN diesel, 175 pk.
Speed 9 kts
Armament None
"""
<hr>
!! Y 8019 / Onderzeedienst 12
"""
Boat Y 8019
Pennant # Y 8019, ex-A 864, ex-RS 31,
ex-Onderzeedienst 12
Chronology Tugboat.
30 Oct 1957: Withdrawn
20 Jan 1958: Decommissioned:
Attached to the
Submarine Service ?
Le x Be x Dr 12.2 m x 5.2 m x 1.4 m
Tonnage 22 t
Engine Kromhout diesel, 60 pk
Speed 7 kts
Armament 2 x 7.62 mm
"""
<hr>
!! Y 8029 / Onderzeedienst 6
"""
Boat Y 8029
Pennant # Y 8029, ex-A 859, ex-RS 19,
ex-Onderzeedienst 6, ex-MVP 426
Chronology Tugboat.
Oct 1954: Decommissioned.
Attached to the
Submarine Service ?
Le x Be x Dr 16 m x 4.25 m x1.6 m
Tonnage 22 t
Engine 110 pk
Speed 7.5 kts
Armament None
"""
cxmnxc fndnkfd cvxkmdios <<slider Kruiser1 Kruiser>>cxmnxc fndnkfd cvxkmdios
<<slider Torpedoboot1 Torpedoboot>>
<<slider Duikboot1 Duikboot>>
!!! Sluitknop
Elk informatieblok bevat rechts bovenin een knop @@fill:#B9CCEC;{{$:/core/images/close-button}}@@ waarmee het informatieblok gesloten kan worden.
> Sluiten van het informatieblok kan ook door op het kruisje (@@color:gray;''x''@@) rechts naast de desbetreffende tab in de <<popup "navigatiebalk" "Navigatiebalk-image">> onder de <<popup "menubalk" "Menubalk-image">> te klikken.
<svg width="30px" height="30px" viewBox="0 0 612.043 612.043">
<path d="M397.503,306.011l195.577-195.577c25.27-25.269,25.27-66.213,0-91.482c-25.269-25.269-66.213-25.269-91.481,0L306.022,214.551L110.445,18.974c-25.269-25.269-66.213-25.269-91.482,0s-25.269,66.213,0,91.482L214.54,306.033L18.963,501.61c-25.269,25.269-25.269,66.213,0,91.481c25.269,25.27,66.213,25.27,91.482,0l195.577-195.576l195.577,195.576
c25.269,25.27,66.213,25.27,91.481,0c25.27-25.269,25.27-66.213,0-91.481L397.503,306.011z"/>
</svg>
{{||$:/_ship_template}}
* <<slider "Torpedoboten Smeroe, Tangka en Wajang, ca. 1911" Schepen344>>
In 1941 in dienst gesteld als Hulpmijnenveger 12 (HMV12).<br>
De Smeroe, Merbaboe en Rindjani voeren op 3 maart 1942 het Westervaarwater bij Soerabaja uit met bestemming Broome West-Australië, waar de drie scheepjes op 10 maart aan kwamen. Vanuit Broome gingen de hulpmijnenvegers verder naar Fremantle waar zij gedurende de rest van de oorlog ingezet werden als patrouillevaartuigen en mijnenvegers.<br>
Na de oorlog keerde de Smeroe terug naar Nederlands Oost-Indië en werd in gebruik genomen als patrouillevaartuig en politiekruiser bij de zee- en kustbewakingsdienst vanuit station Samarinda, Oost-Borneo. Bij de soevereiniteitsoverdracht in december 1949 werd de Smeroe overgedragen aan de Indonesische marine.
Deze 6 kleine schepen werden gebouwd voor de Dienst van Scheepvaart om kleine hoeveelheden goederen of kleine aantallen personen te vervoeren tussen de verschillende eilanden van de Indonesische archipel en als hulppolitiekruisertjes. De Rindjani, Merbaboe en Smeroe werden in 1940/1941 gebouwd in Soerabaja, Java. In 1941 werden de scheepjes omgebouwd tot hulpmijnenvegers.<br>
De Merapi, Slamat en Tjerimai waren nog in aanbouw in Batavia toen de Japanners Java bezetten, begin maart 1942.
!! Stichting Neptune Association
[[link|https://catalina-pby.nl/en/links-en/stichting-neptune-association/]]
<iframe src='https://catalina-pby.nl/en/links-en/stichting-neptune-association/' frameborder="0" width="1024"; height="600"></iframe>
!! Snelheidsrecords voor auto's
De eerste jaren waren het alleen maar elektrische auto's die het snelheidsrecord vestigden.
|Datum |Locatie |Naam |Auto |Aandrijving | Snelheid<br>(km/u) |h
|18-12-1898 |Achères, France |G. de Chasseloup-Laubat ^^1^^ |Jeantaud Duc |Elektrisch| 63.15|
|@@17-01-1899@@ |Achères, France|C. Jenatzy |CGA Dogcart|Elektrisch| 66.66|
|@@17-01-1899@@ |Achères, France|G. de Chasseloup-Laubat |Jeantaud Duc |Elektrisch| 70.313|
|27-01-1899 |Achères, France|C. Jenatzy |CGA Dogcart|Elektrisch| 80.357|
|04-03-1899 |Achères, France|G. de Chasseloup-Laubat |Jeantaud Duc Profilée |Elektrisch| 92.784|
|29-04-1899 |Achères, France|C. Jenatzy |CITA No 25 La Jamais Contente |Elektrisch| 105.882|
|13-04-1902 |Nice, France|L. Serpollet |Gardner-Serpollet Oeuf de Pacques |Stoom| 120.805|
|05-11-1902 |Ablis, France|W.K. Vanderbilt |Mors Z Paris-Vienne|Verbrandingsmotor | 122.449|
|borderless|k
|^^^1^^ | |De Chasseloup-Laubat is vooral bekend door het eerste, officieel geregistreerde Wereldsnelheidsrecord op land.|>|>|>|>|
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Snellius ca. 1960" Schepen198>>
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Snellius 2007" Schepen197>>
De snorkel of snuiverinstallatie was een door de Nederlandse marineofficieren J.J. Wichers en J.C. van Pappelendam uitgevonden apparaat voor z.g. 'getrimd dieselen'. Door dit systeem konden de onderzeeboten onderwater varen op de dieselmotoren waarbij de benodigde zuurstof aangevoerd werd door de snorkel die zich bovenop een uitschuifbare pijp bevond. Door een tweede uitschuifbare buis werden de uitlaatgassen van de dieselmotoren geloosd. De O 2, K II en O 16 waren eerder al uitgerust met een prototype snorkelsysteem, maar de O 19 en O 20 waren de eerste echte onderzeeboten.
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Soemba 1930" Schepen122>>
{{NI}}<br>In 1945/1946 in Engeland verbouwd tot radar trainingsschip en in 1949 verbouwd tot 'aircraft-direction' schip.<br>
Na de uitdienstname van de Soemba in 1956 werd het schip als logementsschip voor het duikbedrijf in Den Oever gebruikt.
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Soemba ca. 2000" Schepen279>>
* <<slider "Duikvaartuig Soemba 2010" Schepen273>>
De Soemba werd tot 2009 door de Nederlandse landmacht gebruikt voor de duikopleiding ('Rijksvaartuig 50').<br>In 2009 werd het schip met het samengaan van de duikopleidingen van de landmacht en de marine overgedragen aan de marine.
De Soemenep werd oorspronkelijk in 1931 gebouwd als sleepboot voor de Zoutregie in Kalianget. In 1940 werd het schip gevorderd en in Soerabaja verbouwd tot mijnenlegger met een capaciteit van 26 mijnen. Sinds 17-06-1941 in dienst als Hulpmijnenlegger.<br>
Bij Balikpapan, voor de kust van Oost-Borneo werden enkele mijnversperringen gelegd die door het schip onderhouden dienden te worden. Toen de Japanners Balikpapan innamen ontkwam de aangepaste sleepboot door haar eigen mijnenveld naar Soerabaja. Op 2 maart 1942 werd het schip door de eigen bemanning tot zinken gebracht in Soerabaja. De Japanse bezetter heeft het schip gelicht, gerepareerd en gebruikt als sleepboot. Na de oorlog werd de sleepboot teruggevonden in Tandjong Priok en na herstelling in dienst gesteld als sleepboot onder naamsein ''RS101'' en later onder naamsein ''A871''. In 1950 werd de sleepboot overgedragen aan de Indonesische marine.
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Sommelsdijk ca. 1899" Schepen347>>
<<imageh 1936-1939_Vliegveld_Vlissingen.jpg 400>>
//Op vliegveld Vlissingen, ca. 1936.//
<<imageh 1936-1939_Souburg_vliegveld_Vlissingen.jpg 400>>
//Souburg, vliegveld Vlissingen, ca. 1938.//
<<imageh 193x_Souburg_Vlissingen.jpg 400>>
//Kaart van luchtvaartterrein Vlissingen, ca. 1935.//
<<imageh 19xx_Luchtfoto_vliegveld_Vlissingen.jpg 400>>
//Luchtfoto van luchtvaartterrein Vlissingen, ca. 1930.<br>Rechts beneden het Kanaal door Walcheren.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/461ff707-72cf-4e85-8a4e-6a7b16fe51e0/media/0cd3de26-2f0a-6417-cfad-9c0861c11fd5?mode=detail&view=horizontal&q=souburg&rows=1&page=4&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<style>
.spinner {
width: 100px;
height: 100px;
background-color: Blue;
margin: 100px auto;
-webkit-animation: sk-rotateplane 1.2s infinite ease-in-out;
animation: sk-rotateplane 1.2s infinite ease-in-out;
}
@-webkit-keyframes sk-rotateplane {
0% { -webkit-transform: perspective(120px) }
50% { -webkit-transform: perspective(120px) rotateY(180deg) }
100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) }
}
@keyframes sk-rotateplane {
0% {
transform: perspective(120px) rotateX(0deg) rotateY(0deg);
-webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg)
} 50% {
transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
-webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg)
} 100% {
transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
-webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
}
}
</style>
<div class="spinner x"></div>
!!! Spyker
''Spyker'' was de naam waaronder vanaf 1915 door de Amsterdamse fabrikant ''Trompenburg'' na een fusie met de ''N.V. Nederlandse Vliegtuigenfabriek'' uit Soesterberg vliegtuigen bouwde. Trompenburg was reeds producent van auto's met dezelfde naam Spyker. Door de bouw van vliegtuigen werd het bedrijf de eerste volwaardige Nederlandse vliegtuigbouwer, die zowel vliegtuigen van eigen ontwerp als in licentie in serieproductie nam.<br>
Op verzoek van het Ministerie van Oorlog begon Spyker in 1916 met de ontwikkeling van een eigen jachtvliegtuig, zodat Nederland minder afhankelijk zou worden van de buitenlandse vliegtuigindustrie. Het werd de Spyker V.1, die eind 1916 gereed kwam. Om dezelfde reden begon ook Van Berkel aan de bouw van watervliegtuigen.<br>
Het jachtvliegtuig V.1 was een ontwerp van de Fransman Vannehard. Het vliegtuig bleek niet te voldoen aan de eisen en het bleef bij één exemplaar. De LVA (de toenmalige Luchtvaart Afdeling van de landmacht) en de in 1917 opgerichte MLD (Marineluchtvaartdienst) hadden inmiddels belangstelling voor lesvliegtuigen. Trompenburg ontwikkelde een lesvliegtuig, de [[Spyker V.2]], en had daarmee meer succes. In maart 1917 vond de eerste vlucht plaats en aan het einde van dat jaar kwam de productie op gang. Er werden 56 exemplaren voor de LVA gebouwd. Met de komst van een nieuwe motor, een Clerget, werd er ook weer een poging gewaagd om een jager samen te stellen. Dit resulteerde in de V.3. Er werden bestellingen geplaatst door de LVA en de MLD. De Eerste Wereldoorlog liep echter op zijn eind en Anthony Fokker smokkelde een aantal van zijn superieure vliegtuigen Duitsland uit. Dit resulteerde in een annulering van de orders voor de V.3.<br>
Eind 1919 stopt Spyker met de vliegtuigbouw.
{{||$:/_plane_template}}
* <<slider "Spyker V.1 1918" Vliegtuig176>>
De Spyker V.1 was het eerste Nederlandse jachtvliegtuig, ontwikkeld en gebouwd door de gefuseerde N.V. Nederlandse Vliegtuigenfabriek en N.V. Nederlandse Automobielfabriek Trompenburg.
Het was een eenpersoons dubbeldekker met een Thulin Gnome rotatiemotor van 80 pk. Het bleek in de praktijk niet erg te voldoen, zodat het bij één toestel is gebleven.
{{||$:/_plane_template}}
* <<slider "Spyker V.2 ca. 1921" Vliegtuig155>>
* <<slider "Spyker V.2 ca. 1922" Vliegtuig117>>
* <<slider "Spyker V.2 ca. 1922" Vliegtuig118>>
Geen watervliegtuig maar wel lesvliegtuig van de MLD.<br>
De MLD bestelde er 20, waarvan er in 1924 9 stuks werden overgenomen door de LVA.
Het toestel was een bijzonder geval. De twee vleugels waren even breed, goed voor een totaal oppervlak van 41.33 vierkante meter. Ter vergelijking, een Fokker D.VII had een oppervlakte van 20.20 vierkante meter! De twee cockpits waren vlak bij elkaar geplaatst. De leerling zat in de voorste cockpit, de instructeur in de achterste.
De Spijker V.2 was bedoeld als lesvliegtuig, en zo werd die ook gebruikt. Kraakjes, ongevallen, noodlandingen en crashes met dodelijke afloop konden niet uitblijven. In 1920 waren al 19 toestellen afgeschreven. Toch heeft de Spijker V.2 haar waarde bewezen voor de Luchtvaartafdeling. Vele vliegers werden opgeleid tot succesvolle piloten, waar de KLM en LVA/MLD nog (jaren)lang plezier van hebben gehad...
!! Spyker
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[V.2|Spyker V.2]] |{{Spyker V.2!!soort}}| 20 (11) ^^1^^| C11 - C30 | {{Spyker V.2!!per}} |
^^1^^ De MLD bestelde er 20, waarvan er in 1924 9 stuks werden overgenomen door de LVA.
Stalen romp met hout bekleed. {{NI}}
!! Stadsreiniging
De Stadsreiniging moet - gezien de foto's die ik heb - in de periode 1923 - 1940 elektrische wagens in bedrijf hebben gehad: asfaltwasmachines, veegmachines, sproeiwagens, lorries en diverse andere elektrische wagens.<br>
Blijkbaar is de Stadsreiniging lang doorgegaan met elektrisch materiëel. Zeker als we bedenken dat de 'bloeiperiode' van elektrische auto's voorbij was; de laatste ATAX reed b.v. in 1926 omdat het toen economisch voordeliger was/werd om auto's met verbrandingsmotoren te gaan gebruiken.
{{eAuto04}}
> Voor meer informatie over de Stadsreiniging, zie [ext[Stadsreiniging|Amsterdam_1822-heden.html#Stadsreiniging]] in de 'Hugo de Grootbuurt' wiki.
<<imageh 1935_ca_Stadsreiniging_Veegmachine.jpg 400>>
//Elektrische veegmachine van de Stadsreiniging op de Bilderdijkkade, ca.1935.//
<<imageh 1936_Stadsreiniging_veegmachines.jpg 400>>
//Elektrische veegmachines van de Stadsreiniging in 1936.//
<<imageh 1935_ca_Stadsreiniging_veegmachine_elektrische_asfaltwasmachine.jpg 400>>
//Elektrische asfaltwasmachine van de Stadsreiniging op de Bilderdijkkade, ca.1935.//
<<imageh 1936_Stadsreiniging_asfaltwasmachines.jpg 400>>
//Elektrische asfaltwasmachines aan het werk in 1936.//
<<imageh 1927_Stadsreiniging_08_Het_Leven.jpg 400>>
//Stadsreiniging: elektrische asfaltwasmachines in actie. Het Leven, 1927.//
<<imageh 1927_Stadsreiniging_04_Het_Leven.jpg 400>>
//Stadsreiniging: een elektrische sproeiwagen wordt gevuld, 1927.//
<<imageh 1927_Stadsreiniging_02_Het_Leven.jpg 400>>
//Stadsreiniging: putjesschepper met elektrische wagen. Het Leven, 1927.//
<<imageh 1936_Stadsreiniging_Hoe_ondergronds_wordt_gewerkt.jpg 400>>
//Hoe ondergronds wordt gewerkt door de Stadsreiniging. Elektrische motorlorrie, 1936.//
<<imageh 1923_Stadsreiniging_motorlorrie.jpg 400>>
//Elektrische motorlorrie van de Stadsreiniging, 1923.//
<<imageh 1938_ca_Bilderdijkkade_SR.jpg 400>>
//Centrale Inrichting Bilderdijkkade, Stadsreiniging, ca. 1938.//
<<imageh 1931_Stadsreiniging_sneeuwruimen_Dam.jpg 400>>
//Sneeuwruimen op de Dam, 1931.//
<<imageh 1940_Rioolontstopping_Bert_Buurman.jpg 400>>
//Rioolontstopping. Bert Buurman, 1940.//
<<imageh 1929_ca_Hugo_de_Grootkade_stadsreiniging.jpg 400>>
//Iets van de Stadsreiniging op het eind van de Hugo de Grootkade, 1929.<br>
Elektrische asfaltwasmachine trekt wat.//
In 1996 werd een zelfstandige kustwacht voor de Nederlandse Antillen en Aruba opgericht (NA&A CG). De huidige formele naam is 'Kustwacht voor het Koninkrijk der Nederlanden in het Caribisch Gebied' (Dutch Caribbean Coast Guard). Sinds de staatkundige hervormingen binnen het Koninkrijk der Nederlanden in 2010 opereert de dienst onder de huidige naam en valt onder beheer van de Nederlandse marine (maakt gebruik van marine eenheden zoals de [[Pelikaan|Pelikaan (2006)]] en het stationsschip van de West (2019-2020 patrouilleschip [[Groningen|Groningen (2013)]]).<br>'Eigen' schepen (kustwachtkotters): [[Jaguar (1999)]], [[Panter (1999)]] en [[Poema (1999)]]
In 1975 omgebouwd tot mijnenjager.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Staverman ca. 1973" Schepen460>>
!! Stichting Exploitatie Catalina PH-PBY
[[link|https://catalina-pby.nl/]]
<iframe src='https://catalina-pby.nl/' frameborder="0" width="1024"; height="600"></iframe>
{{||$:/_ship_template}}
* <<slider "Model van ramtorenschip 1868" Schepen126>>
* <<slider "Ramtorenschip Stier 1894" Schepen300>>
In 1908 werd het ontwapend en opgelegd. Van 1915 tot 1925 heeft het als magazijnschip te Den Helder gediend.<br>
In 1925 tijdens proeven met vliegtuigbombardementen in het Malzwin tot zinken gebracht. In 1930 werd door de opleiding duikers de uitstekende delen van het wrak van de Stier.
* @@color:White;background-color:Red;Ever@@ , @@color:White;background-color:Red;Hydra@@ , @@color:White;background-color:Red;Havik@@ , Dog, @@color:White;background-color:Red;Brak@@ , @@color:White;background-color:Red;Vos@@ , @@color:White;background-color:Red;Los@@ , @@color:White;background-color:Red;Gier@@ , @@color:White;background-color:Red;Geep@@ , @@color:White;background-color:Red;Raaf@@ , @@color:White;background-color:Red;Das@@ , @@color:White;background-color:Red;Fret@@ , @@color:White;background-color:Red;Sperwer@@ , @@color:White;background-color:Red;Bever@@ (14)
Dog = Daak ?
* @@color:White;background-color:Red;Thor@@ , @@color:White;background-color:Red;Freyer@@ (Freyr), @@color:White;background-color:Red;Hjord@@ (Njord), @@color:White;background-color:Red;Tyr@@ , @@color:White;background-color:Red;Braga@@, @@color:White;background-color:Red;Heimdall@@ , @@color:White;background-color:Red;Balder@@, @@color:White;background-color:Red;Vidar@@ , @@color:White;background-color:Red;Vali@@ , @@color:White;background-color:Red;Ulfr@@ , @@color:White;background-color:Red;Hadda@@ , @@color:White;background-color:Red;Dufa@@ , @@color:White;background-color:Red;Udur@@, @@color:White;background-color:Red;Hefring@@ , @@color:White;background-color:Red;Bulgia@@ (15)
Waar is Wodan ?
Freyer = Freyr, Hjord = Njord
<hr>
Situatie anno 1895. Bron Jaarboek KM 1895-'96
* @@background-color:yellow; Wodan@@
* @@background-color:yellow; Thor@@
* @@background-color:yellow; Freijr@@
* @@background-color:Cyan;Hydra@@
* @@background-color:Cyan;Ever@@
* @@background-color:Cyan;Dog@@ Daak?
* @@background-color:Cyan;Gier@@
* @@background-color:Cyan;Havik@@
* @@background-color:Cyan;Raaf@@
* @@background-color:Cyan;Geep@@
* @@background-color:Cyan;Brak@@
* @@background-color:Cyan;Lynx@@
* @@background-color:Cyan;Vos@@
* @@background-color:Cyan;Fret@@
* @@background-color:Cyan;Das@@
* @@background-color:Cyan;Sperwer@@
* @@background-color:Cyan;Bever@@
* @@background-color:yellow; Njord@@
* @@background-color:yellow; Braga@@
* @@background-color:yellow; Tyr@@
* @@background-color:yellow; Heimdall@@
* @@background-color:yellow; Balder@@
* @@background-color:yellow; Vidar@@
* @@background-color:yellow; Vali@@
* @@background-color:yellow; Ulfr@@
* @@background-color:yellow; Dufa@@
* @@background-color:yellow; Hadda@@
* @@background-color:yellow; Hefring@@
* @@background-color:yellow; Udur@@
* @@background-color:yellow; Bulgia@@
<hr>
Vanmorgen mijn gegevens over het lot van de hele klasse even nagekeken .<br>
Eerst volgens Lenton.
* @@background-color:yellow; Braga@@ 15-5-40 aan de grond gezet Fort Pannerden, verlaten. Wrak geborgen en gesloopt.
* @@background-color:yellow; Freyr@@ 14-5-40 in Amsterdam tot zinken gebracht door eigen mensen, gelicht en in september 1944 als versperringsschip gebruikt, gelicht en gesloopt in 1947.
* @@background-color:yellow; Hefring@@ 14-5-40 door Duits vliegtuig bij Amsterdam gebombardeerd, gezonken , gelicht 23-9-1941 en gesloopt ? Vraagteken van de schrijver.
* @@background-color:yellow; Tyr@@ op 14-5-40 buitgemaakt door Duitsers bij St Andries. Als Tyr in Duitse dienst.
* @@background-color:yellow; Balder@@ 14-5-40 buitgemaakt door de Duitsers in Bolnes en gesloopt.
* @@background-color:yellow; Bulgia@@ 12-5-40 gebombardeerd in Vlissingen en gezonken, op 31-7-1940 gelicht en gesloopt.
* @@background-color:yellow; Hadda@@ 14-5-40 buitgemaakt in Hoek van Holland en gesloopt.
* @@background-color:yellow; Thor@@ 14-5-40 buitgemaakt Den Helder,1941/42 gebombardeerd door geallieerd vliegtuig Vlissingen.
* @@background-color:yellow; Vidar@@ 18-5-40 buitgemaakt in Vlissingen en gesloopt ? (vraagteken schrijver)
Volgens Bezemer
* @@background-color:yellow; Braga@@: aan de grond gezet bij Fort Pannerden, 12 cm stuk vernield en 3,7 cm kanoon en mitrailleeurs ingezet bij Fort.
* @@background-color:yellow; Freyr@@: na Rijn verdediging bij Arnhem en bij de Grebbeberg terugetrokken naar Amsterdam en bij capitulatie buiten de Oranjesluizen tot zinken gebracht door eigen mensen.
* @@background-color:yellow; Hefring@@ op 14-5-40 door eigen mensen tot zinken gebracht Ysselmeer.
*@@background-color:yellow; Tyr@@ na bewaking bij Nijmegen en Maas-Waallinie teruggetrokken op Gorkum en op 15-5-40 onbeschadigd in Duitse handen gevallen (op bevel van commandant Groep Merwede, landmacht, niet opgeblazen.
* @@background-color:yellow; Balder@@, als al vermeld: Bolnes opde werf buitgemaakt. Bemanning vocht mee bij de Maasbruggen Rotterdam
* @@background-color:yellow; Bulgia@@: geen vermelding
* @@background-color:yellow; Hadda@@: geen vermelding
* @@background-color:yellow; Thor@@: geen vermelding
* @@background-color:yellow; Vidar@@: geen vermelding
! [[Submarines]]
!! Conventional submarines
<br>
# [[O1 (1906)]] submarine
# ''O2'' submarines (1911-1914)
#* [[O2 (1911)]]
#* [[O3 (1913)]]
#* [[O4 (1914)]]
#* [[O5 (1914)]]
# [[KI (1914)]] submarine
# [[O6 (1916)]] submarine
# [[O7 (1916)]] submarine
# [[M1 (1917)]] submarine
# [[O8 (1917)]] submarine
# ''KIII'' submarines (1920-1921)
#* [[KIII (1920)]]
#* [[KIV (1921)]]
# ''KV'' submarines (1920-1922)
#* [[KV (1920)]]
#* [[KVI (1921)]]
#* [[KVII (1922)]]
# [[KII (1922)]] submarine
# ''KVIII'' submarines (1922-1923)
#* [[KVIII (1922)]]
#* [[KIX (1923)]]
#* [[KX (1923)]]
# ''KXI'' submarines (1925-1926)
#* [[KXI (1925)]]
#* [[KXII (1925)]]
#* [[KXIII (1926)]]
# ''O9'' submarines (1926)
#* [[O9 (1926)]]
#* [[O10 (1926)]]
#* [[O11 (1926)]]
# ''O12'' submarines (1931-1933)
#* [[O12 (1931)]]
#* [[O13 (1931)]]
#* [[O14 (1932)]]
#* [[O15 (1932)]]
# ''KXIV'' submarines (1933-1934)
#* [[KXIV (1933)]]
#* [[KXV (1933)]]
#* [[KXVI (1934)]]
#* [[KXVII (1933)]]
#* [[KXVIII (1934)]]
# [[O16 (1936)]] submarine
# ''O19'' submarines (1939)
#* [[O19 (1939)]]
#* [[O20 (1939)]]
# ''O21'' submarines (1940, 1942/1945)
#* [[O21 (1940)]]
#* [[O22 (1940)]]
#* [[O23 (1940)]]
#* [[O24 (1940)]]
#* ~~O25~~
#* ~~O26~~
#* [[O27 (1945)]]
# [[Dolfijn (1942)]] submarine
# [[Zeehond (1943)]] submarine
# ''Zwaardvisch'' submarines (1943-1945, 1944/1948)
#* [[Zwaardvisch (1943)]]
#* [[Zeehond (1944)]]
#* [[Tijgerhaai (1945)]]
# [[Dolfijn (1948)]] submarine
# ''Walrus'' submarines
#* [[Walrus (1953)]]
#* [[Zeeleeuw (1953)]]
# ''Dolfijn'' submarines (1960-1966)
#* [[Dolfijn (1960)]]
#* [[Zeehond (1961)]]
#* [[Potvis (1965)]]
#* [[Tonijn (1966)]]
# ''Zwaardvis'' submarines (1972)
#* [[Zwaardvis (1972)]]
#* [[Tijgerhaai (1972)]]
# ''Walrus'' submarines (1990-1994)
#* [[Walrus (1992)]]
#* [[Zeeleeuw (1990)]]
#* [[Dolfijn (1993)]]
#* [[Bruinvis (1994)]]
{{||$:/_ship_template}}
* <<slider "Pantserdekschip Sumatra 1891" Schepen012>>
* <<slider "Pantserdekschip Sumatra 1891" Schepen072>>
* <<slider "Pantserdekschip Sumatra 1891" Schepen305>>
* <<slider "Pantserdekschip Sumatra 1891" Schepen307>>
{{||$:/_ship_template}}
* <<slider "Kruiser Sumatra 1926" Schepen068>>
* <<slider "Kruiser Sumatra ca. 1937" Schepen372>>
{{NI}}<br>Was in 1940 te Vlissingen en ontsnapte 11-5-1940 naar Engeland. In de Tweede Wereldoorlog vervulde de kruiser Sumatra konvooidiensten en bracht onder andere prinses Juliana met haar kinderen naar Canada. Problemen met de voortstuwing maakten de Sumatra ongeschikt voor gevechtstaken en in 1944 werd het schip ontwapend en gebruikt als golfbreker bij de landing in Normandië
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Sumbawa 1891" Schepen350>>
{{||$:/_plane_template}}
* <<slider "Sea Otter 1950" Vliegtuig113>>
* <<slider "Sea Otter 1950" Vliegtuig111>>
* <<slider "Sea Otter 1953" Vliegtuig114>>
{{||$:/_plane_template}}
* <<slider "Supermarine Walrus 1946" "Vliegtuig002">>
* <<slider "Supermarine Walrus 1946" Vliegtuig018>>
* <<slider "Supermarine Walrus 1947" Vliegtuig019>>
Walrus I: metalen romp, Walrus II: houten romp.<br>
Willem Barendsz had 2x Walrus I aan boord.
!! Supermarine
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[Sea Otter|Supermarine Sea Otter Mk.2]] |{{Supermarine Sea Otter Mk.2!!soort}}| 8|zie hieronder| {{Supermarine Sea Otter Mk.2!!per}} |
* <<slider "Registratiegegevens Sea Otter" "Registratie Supermarine Sea Otter">>
|Type |rol |opmerkingen |h
|[[Walrus|Supermarine Walrus]] |{{Supermarine Walrus!!soort}} |2 aan boord van de Willem Barendsz als 'walvisspotter', echter nooit als zodanig gebruikt|
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Suriname 1881" Schepen280>>
{{||$:/_ship_template}}
* <<slider "Torpedoboten Smeroe, Tangka en Wajang, ca. 1911" Schepen344>>
{{||$:/_ship_template}}
* <<slider "Korvet Ternate 1946" Schepen340>>
* <<slider "Mijnenveger Ternate ca. 1951" Schepen339>>
Australisch korvet/mijnenveger ''Kalgoorlie'' (J192). Vanaf 1946 bij Nederlandse marine.
{{NI}}<br>
{{Bathurst}}<br>
In 1956 in gebruik genomen als instructievaartuig bij de {{TOKM}}.
Zes dagen na de indienstname werd het schip, tijdens een Duitse luchtaanval, zo zwaar beschadigd dat het zonk.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Terschelling ca. 1954" Schepen158>>
ex-234(237?).<br>Ter vervanging van de verloren gegane Terschelling 1942.
* Floating Images ~HowTo
* floating-image-macros
* floating-image-css
name, width:"33%", tooltip, caption
<<image-left Images/1899_Camille_Jenatzy.jpg 50% "Test image left" "Dit is een bijschrift">> Lorem ipsum dolor sit amet, usu soluta erroribus intellegebat no, qui dolore appetere iudicabit at. Posse iriure aperiam mel at, eos an nemore iriure menandri. Sumo munere ut eam, ut nobis mucius quo. Ad eam philosophia mediocritatem, pro utinam facilisi cu. Debitis albucius eam te, dicta offendit mandamus ex has. Viris splendide ut nec, te usu munere menandri eloquentiam. Eam veniam signiferumque no, reque aeque ornatus at sit, no quo augue facilisi.
Eos eius tritani ei, per quod oblique ei. Vix perfecto intellegebat in, adhuc facete ceteros an vix. Aeque accumsan an sit, velit antiopam scripserit cum ad. Omnis mnesarchum sit an, eius explicari interpretaris ut mea. Possim insolens reprehendunt ne sit. Vis ea natum liberavisse, assum laoreet ei ius.
Eam quod urbanitas an, ullum discere elaboraret vix an. Fastidii quaestio complectitur pri eu, virtute fastidii dissentiunt ex duo. Stet velit insolens at quo, ex his graece nominavi, clita labores deserunt ex mei. Has assueverit adversarium te. Ne mel ridens partiendo consequuntur, quem tempor no quo.
Etiam scripserit ea cum. Dicant similique adipiscing vis ut, mea case interpretaris ut. Has in ferri periculis philosophia. Sea eu vivendum adipiscing, te ius populo facilisi electram, iracundia hendrerit ne pro. Denique insolens ius ea.
Ad pro bonorum laoreet, iudico populo dissentias cu has. Usu zril mucius ad, adhuc eruditi per te. Cu mutat meliore honestatis vis, ex vim quidam tritani feugait. Porro facer facilisi ex sed, ea simul efficiantur duo.
---
<<image-right Images/1899_Camille_Jenatzy.jpg 50% "Test image left" "Dit is een bijschrift">> Lorem ipsum dolor sit amet, usu soluta erroribus intellegebat no, qui dolore appetere iudicabit at. Posse iriure aperiam mel at, eos an nemore iriure menandri. Sumo munere ut eam, ut nobis mucius quo. Ad eam philosophia mediocritatem, pro utinam facilisi cu. Debitis albucius eam te, dicta offendit mandamus ex has. Viris splendide ut nec, te usu munere menandri eloquentiam. Eam veniam signiferumque no, reque aeque ornatus at sit, no quo augue facilisi.
Eos eius tritani ei, per quod oblique ei. Vix perfecto intellegebat in, adhuc facete ceteros an vix. Aeque accumsan an sit, velit antiopam scripserit cum ad. Omnis mnesarchum sit an, eius explicari interpretaris ut mea. Possim insolens reprehendunt ne sit. Vis ea natum liberavisse, assum laoreet ei ius.
Eam quod urbanitas an, ullum discere elaboraret vix an. Fastidii quaestio complectitur pri eu, virtute fastidii dissentiunt ex duo. Stet velit insolens at quo, ex his graece nominavi, clita labores deserunt ex mei. Has assueverit adversarium te. Ne mel ridens partiendo consequuntur, quem tempor no quo.
Etiam scripserit ea cum. Dicant similique adipiscing vis ut, mea case interpretaris ut. Has in ferri periculis philosophia. Sea eu vivendum adipiscing, te ius populo facilisi electram, iracundia hendrerit ne pro. Denique insolens ius ea.
Ad pro bonorum laoreet, iudico populo dissentias cu has. Usu zril mucius ad, adhuc eruditi per te. Cu mutat meliore honestatis vis, ex vim quidam tritani feugait. Porro facer facilisi ex sed, ea simul efficiantur duo.
---
<<image-center Images/1899_Camille_Jenatzy.jpg 50% "Test image left" "Dit is een bijschrift">>Lorem ipsum dolor sit amet, usu soluta erroribus intellegebat no, qui dolore appetere iudicabit at. Posse iriure aperiam mel at, eos an nemore iriure menandri. Sumo munere ut eam, ut nobis mucius quo. Ad eam philosophia mediocritatem, pro utinam facilisi cu. Debitis albucius eam te, dicta offendit mandamus ex has. Viris splendide ut nec, te usu munere menandri eloquentiam. Eam veniam signiferumque no, reque aeque ornatus at sit, no quo augue facilisi.
Eos eius tritani ei, per quod oblique ei. Vix perfecto intellegebat in, adhuc facete ceteros an vix. Aeque accumsan an sit, velit antiopam scripserit cum ad. Omnis mnesarchum sit an, eius explicari interpretaris ut mea. Possim insolens reprehendunt ne sit. Vis ea natum liberavisse, assum laoreet ei ius.
Eam quod urbanitas an, ullum discere elaboraret vix an. Fastidii quaestio complectitur pri eu, virtute fastidii dissentiunt ex duo. Stet velit insolens at quo, ex his graece nominavi, clita labores deserunt ex mei. Has assueverit adversarium te. Ne mel ridens partiendo consequuntur, quem tempor no quo.
Etiam scripserit ea cum. Dicant similique adipiscing vis ut, mea case interpretaris ut. Has in ferri periculis philosophia. Sea eu vivendum adipiscing, te ius populo facilisi electram, iracundia hendrerit ne pro. Denique insolens ius ea.
Ad pro bonorum laoreet, iudico populo dissentias cu has. Usu zril mucius ad, adhuc eruditi per te. Cu mutat meliore honestatis vis, ex vim quidam tritani feugait. Porro facer facilisi ex sed, ea simul efficiantur duo.
<<tabs "[[Test insluiten NIMH1]] [[Test insluiten NIMH2]] [[Test insluiten NIMH3]]">>
!!! Origineel van NIMH:
```
<a href="https://nimh-beeldbank.defensie.nl/memorix/f6c17deb-a2f3-56ce-b1b7-a845ac2b91ea" title=", op Beeldbank Nederlands Instituut voor Militaire Historie"><img src="//images.memorix.nl/nda/thumb/620x620/157d3ef4-1a75-ee90-4d4a-38b81947db89.jpg"/ alt=""></a>
```
geeft:
<a href="https://nimh-beeldbank.defensie.nl/memorix/f6c17deb-a2f3-56ce-b1b7-a845ac2b91ea" title=", op Beeldbank Nederlands Instituut voor Militaire Historie"><img src="//images.memorix.nl/nda/thumb/620x620/157d3ef4-1a75-ee90-4d4a-38b81947db89.jpg"/ alt=""></a>
!!! Copy image location:
```
[img[https://images.memorix.nl/nda/thumb/620x620/157d3ef4-1a75-ee90-4d4a-38b81947db89.jpg]]
```
geeft:
[img[https://images.memorix.nl/nda/thumb/620x620/157d3ef4-1a75-ee90-4d4a-38b81947db89.jpg]]
!!! Aanpassingen NIMH script
bij src `https:` toegvoegd en `/` achter jpg verwijderd:
```
<a href="https://nimh-beeldbank.defensie.nl/memorix/f6c17deb-a2f3-56ce-b1b7-a845ac2b91ea" title=", op Beeldbank Nederlands Instituut voor Militaire Historie"><img src="https://images.memorix.nl/nda/thumb/620x620/157d3ef4-1a75-ee90-4d4a-38b81947db89.jpg" alt=""></a>
```
geeft
<a href="https://nimh-beeldbank.defensie.nl/memorix/f6c17deb-a2f3-56ce-b1b7-a845ac2b91ea" title=", op Beeldbank Nederlands Instituut voor Militaire Historie"><img src="https://images.memorix.nl/nda/thumb/620x620/157d3ef4-1a75-ee90-4d4a-38b81947db89.jpg" alt=""></a>
ex-MMS73.<br>Eerdere ex-MMS173 had van de rest afwijkende motoren; 'geruild' voor ex-MMS73.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Texelstroom 1954" Schepen450>>
Oorspronkelijk US YMS-156, daarna Brits BYMS 2156.<br>
{{YMS47}}
//Bron: Wikipedia,// https://nl.wikipedia.org/wiki/Thomas_Davenport
<<popup "Thomas Davenport" "ThomasDavenport">> (Williamstown, 9 juli 1802 – Salisbury, 6 juli 1851) was een Amerikaans smid die woonde en leefde in Forestdale (Vermont).<br>
Geboren als boerenzoon in een groot gezin leerde Davenport het beroep van smid op veertienjarige leeftijd wegens de beperkte (financiële) onderwijsmogelijkheden van die tijd. Thomas' vader overleed toen hij 10 jaar oud was. In 1823 vertrok hij naar Forestdale waar hij zijn eigen smederij begon. Autodidactisch aangelegd en sterk geïnteresseerd in de nieuwe ontdekkingen en ontwikkelingen van elektriciteit en magnetisme, zocht hij rond 1830 contact met Joseph Henry en observeerde hij diens experimenten. Uit elektromagneten, die hij van Henry had gekocht, bouwde hij samen met zijn vrouw Emily de eerste gelijkstroomcommutatormotor.<br>
Zijn in 1834 ingediende patentaanvraag voor 'Improvement in propelling machinery by magnetism and electromagnetism' werd echter geweigerd. Na een nieuwe aanvraag met referenties van Henry en professor Benjamin Franklin Bache, een kleinzoon van Benjamin Franklin, werd Davenport op 25 februari 1837 het patent toegekend. In 1835 bouwde hij met zijn ontwikkelde elektromotor, een model van een elektrisch aangedreven railvoertuig op een cirkelvormig railspoor van vier voet doorsnede.<br>
Deze modeltrein bevindt zich samen met het bij de patentaanvraag ingediende model van zijn elektrische motor vandaag de dag in het Smithsonian Institution te Washington D.C. Davenports ontwikkeling was ongetwijfeld een technische doorbraak, maar leidde niet tot een commerciële succes voor zijn eigen werkplaats omdat de stoommachine op dat moment veel effectiever en economischer was.
<<slider "Modellen van motor en 'trein'" "Modellen van motor en 'trein'">>
[img[Thomas Davenport|Images/ThomasDavenport.jpg]]<br>
//Thomas Davenport//
{{||$:/_plane_template}}
* <<slider "Thulin K 1917" Vliegtuig180>>
De Thulin K was een eenpersoons jachtvliegtuig (houten schouderdekker zonder vleugelkleppen). Het had een Thulin A rotatiemotor van 90 pk die was afgeleid van de Franse Gnome motor.<br>
Er was ook een tweezits uitvoering (Thulin KA), waarbij de inzittenden in tandemopstelling zaten.
{{||$:/_plane_template}}
* <<slider "Thulin LA ca. 1919" Vliegtuig179>>
De Thulin LA was een tweezits houten dubbeldekker voorzien van een Thulin G motor (een onder licentie gebouwde Le Rhone 9C motor).
TiddlyWiki is een wiki, speciaal voor persoonlijk gebruik, waarbij alle data in principe op de eigen harde schijf verblijft (maximale privacy).<br>Voor het bewerken van TiddlyWiki is geen speciaal programma nodig, een browser volstaat.
De 'Hugo de Grootbuurt en omstreken' is gemaakt in TiddlyWiki v2.9.2, een oudere versie.<br>
'Techniek' en 'Familie' gebruiken de nieuwste versie van TiddlyWiki t.w. <<version>> (versie 5 is van de grond af opnieuw ontwikkeld).
* [[TiddlyWiki v2.9.2|https://classic.tiddlywiki.com/]]
* [[TiddlyWiki|https://tiddlywiki.com/]] <<version>>
Australisch korvet/mijnenveger ''Tamworth'' (J181). Vanaf 1946 bij Nederlandse marine.<br>
In 1950 naar Indonesische marine als ''Pati Unus''.
{{||$:/_ship_template}}
* <<slider "Monitor Tijger 1892" Schepen073>>
* <<slider "Monitor Tijger 1892" Schepen416>>
* <<slider "Model van monitor Tijger 1868" Schepen286>>
* <<slider "Doorsnedes monitoren ca. 1870" Schepen170>>
{{||$:/_ship_template}}
* <<slider "Duikboten Zwaardvis en Tijgerhaai ca. 1975" Schepen174>>
Ex-Britse ''Nonpareil''; al voor de afbouw aan Nederland overgedragen.<br>
In 1951 naar Indonesië als ''Gadjah Mada''.
{{||$:/_ship_template}}
* <<slider "Fregat Tjerk Hiddes ca. 1984" Schepen477>>
In de periode december 1978 t/m juni 1981 werd het fregat te Den helder gemoderniseerd.<br>
Na de uitdienstname is het schip verkocht aan Indonesië en daar in dienst gesteld als ''Ahmad Yani''.
{{||$:/_ship_template}}
* <<slider "Fregat Tjerk Hiddes ca. 1997" Schepen292>>
De TM10 werd in 1941 in dienst gesteld. Op 2 maart 1942 werd de TM10 bij Soerabaja door de eigen bemanning tot zinken gebracht.
De TM11 werd in 1941 in dienst gesteld. Op 8 maart 1942 werd de TM11 bij Soerabaja door de eigen bemanning tot zinken gebracht.
De TM12 werd in 1941 in dienst gesteld. Op 2 maart 1942 werd de TM12 bij Soerabaja door de eigen bemanning tot zinken gebracht.
De TM13 werd in 1941 in dienst gesteld. Op 2 maart 1942 werd de TM13 bij Soerabaja door de eigen bemanning tot zinken gebracht.
De TM14 werd in januari 1942 in dienst gesteld. Op 2 maart 1942 werd de TM14 bij Soerabaja door de eigen bemanning tot zinken gebracht.
De TM15 werd in januari 1942 in dienst gesteld. Op 2 maart 1942 werd de TM15 bij Soerabaja door de eigen bemanning tot zinken gebracht.
Werd op Curaçao afgebouwd en in 1942 in dienst gesteld. Nadat de TM22 beschadigd was geraakt werd de boot na reparatie in reserve genomen. De TM22 werd op 1 juni 1947 van de sterkte afgevoerd.
Deze zeer snelle Canadese torpedomotorboten waren besteld voor dienst in Nederlands Oost-Indië en waren uitgerust met vier torpedolanceerbuizen. Omdat de boten niet meer op tijd geleverd konden worden, werden 12 van de 16 (TM22 t/m TM33) naar Nederlands West-Indië gestuurd. De overige 4 werden verkocht aan de US Navy. TM22 t/m TM27 werden in november en december 1941 per schip afgeleverd op Curaçao, waar zij afgebouwd werden. TM28 t/m TM33 maakten de reis naar Curaçao geheel op eigen kracht.<br>De TM22-klasse torpedomotorboten werden gestationeerd op Parera, Curaçao, waar in de loop van 1943 een basis voor deze boten gereed kwam. Deze had de beschikking over een steiger, een sleephelling, een botenhal, werkplaatsen en accommodatie voor de opvarenden.
<<<
De torpedomotorboten werden in de West nooit uitgerust met torpedo's. Tegen de tijd dat de onderwaterprojectielen leverbaar en oorlogsgereed waren, waren de lanceerbuizen grotendeels onbruikbaar geworden. Voordat het tot een definitieve oplossing kon komen, werd de Torpedomotorbootdienst in de Nederlandse Antillen al weer afgebouwd. Een aantal boten werd als deklast op tankers naar Engeland overgebracht en aan de Royal Navy overgedragen. De bemanningsleden gingen over naar moderne Britse torpedomotorboten die in Nederlandse dienst kwamen en opereerden in het Kanaal.
<<<
Werd op Curaçao afgebouwd en in 1942 in dienst gesteld. In 1943 brak de TM23 haar kiel waarna zij gesloopt werd.
Werd op Curaçao afgebouwd en in 1942 in dienst gesteld. In 1944 liep de torpedomotorboot een gebroken kiel op en werd datzelfde jaar nog gesloopt.
Werd op Curaçao afgebouwd en in 1942 in dienst gesteld. Nog geen jaar later, op 27 februari 1943, ging de torpedomotorboot verloren na een benzine-explosie die gevolgd werd door een fatale brand.
Werd op Curaçao afgebouwd en in 1942 in dienst gesteld. De torpedomotorboot werd samen met de TM33 in 1944 overgebracht naar Sydney, Australië en omgebouwd tot patrouillemotorboot en in dienst gesteld als PMB26. De boot werd gestationeerd in Port Darwin en ter beschikking gesteld van de Netherlands Forces Intelligence Service (NEFIS). Op 1 mei 1946 werd de boot overgedragen aan de MLD en in Nederlands Oost-Indië ingezet als air-sea-rescue boot.
Werd op Curaçao afgebouwd en in 1942 in dienst gesteld. Op 6 juli 1943 zonk de boot na een benzine-explosie. Het schip werd nog geborgen, maar vervolgens gesloopt.
Werd in de zomer van 1942 overgevaren van Montreal naar Curaçao door de Nederlandse bemanning. In de zomer van 1944 werden de TM28 t/m TM 31 verscheept naar Engeland waar de boten door de Royal Navy werden opgelegd. In februari 1946 werd de TM28 van de sterkte afgevoerd.
Werd in de zomer van 1942 overgevaren van Montreal naar Curaçao door de Nederlandse bemanning. In de zomer van 1944 werden de TM28 t/m TM 31 verscheept naar Engeland waar de boten door de Royal Navy werden opgelegd. In februari 1946 werd de TM28 van de sterkte afgevoerd.
Werd op 11 september 1942 op de werf in Montreal in dienst gesteld en samen met zusterschepen TM31, TM32 en TM33 overgevaren naar de Nederlandse Antillen. De vier torpedomotorboten kwamen op 18 november 1942 behouden aan op Curaçao. In de zomer van 1944 werd de TM30 verscheept naar Engeland en daar opgelegd door de Royal Navy. Op 1 april 1946 werd de boot van de sterkte afgevoerd.
Werd op 11 september 1942 op de werf in Montreal in dienst gesteld en samen met zusterschepen TM31, TM32 en TM33 overgevaren naar de Nederlandse Antillen. De vier torpedomotorboten kwamen op 18 november 1942 behouden aan op Curaçao. In de zomer van 1944 werd de TM31 verscheept naar Engeland en overgedragen aan de Royal Navy. In de nacht van 1 op 2 september 1944 moest de boot tijdens een zware storm op het strand gezet worden en raakte zwaar beschadigd. Vervolgens werd de TM 31 van de sterkte afgevoerd en gesloopt.
Werd op 11 september 1942 op de werf in Montreal in dienst gesteld. Stootte kort na vertrek uit Montreal op de Richelieu River op een rots en keerde terug naar de werf. Daar ging de bemanning over op de zojuist afgebouwde TM34, die in dienst gesteld werd als TM32. De nieuwe TM32 ging vervolgens de drie andere boten achterna en haalde deze in Norfolk in. De 4 torpedomotorboten kwamen op 18 november 1942 behouden aan op Curaçao. De boot werd enige maanden later uit de sterkte afgevoerd nadat de kiel gebroken was.
Werd op 11 september 1942 op de werf in Montreal in dienst gesteld en samen met zusterschepen TM31, TM32 en TM33 overgevaren naar de Nederlandse Antillen. De vier torpedomotorboten kwamen op 18 november 1942 behouden aan op Curaçao. In 1944 werd de boot, samen met TM26, overgebracht naar Sydney en ter plaatse omgebouwd en in dienst gesteld als PMB33. Vanuit Port Darwin werd de boot vervolgens ter beschikking gesteld van de NEFIS. Op 1 mei 1946 ging de boot naar de MLD in Nederlands Oost-Indië.
De TM4 werd op 20 september 1940 in dienst gesteld. Op 2 maart 1942 werd de TM4 bij Soerabaja door de eigen bemanning tot zinken gebracht.
De motoren van de TM4-klasse torpedomotorboten waren afkomstig van buiten dienst gestelde Dornier Wal en Fokker T-4 vliegtuigen. Omdat de vliegtuigmotoren oud waren, leverden ze veel technische problemen op en hadden ze veel onderhoud nodig. De torpedolanceerbuizen waren afkomstig van de buiten dienst gestelde Wolf-klasse torpedobootjagers en Z-klasse torpedoboten. De torpedomotorboten van de TM 4-klasse hadden een zeer beperkte actieradius en konden vanaf hun basis Soerabaja de mogelijke vijand alleen schade toebrengen als deze al te dicht genaderd was.
De TM16 t/m TM21 waren nog in aanbouw en werden op 2 maart 1942 incompleet tot zinken gebracht in Soerabaja.
{{||$:/_ship_template}}
* <<slider "Torpedomotorboten TM6, TM8 en TM5 ca. 1941" Schepen399>>
De TM5 werd op 6 juli 1940 in dienst gesteld. Op 2 maart 1942 werd het schip door de eigen bemanning tot zinken gebracht bij Soerabaja.
Werd op 6 novemner 1939 in dienst gesteld. De TM51 was op 10 mei 1940 zeer actief betrokken bij de strijd om de Rotterdamse Maasbruggen waarbij de boot schade opliep. De boot keerde terug naar Gusto in Schiedam voor noodreparaties en kon op 14 mei ontsnappen naar Engeland. De in Rotterdam opgelopen schade werd definitief hersteld op de werf van British Powerboat Company.<br>De TM 51 werd vervolgens overgedragen aan de Royal Navy, die de boot ombouwde tot Motor Gun Boat en in dienst nam als MGB46. Van 2 juni 1941 tot 25 november 1942 was de boot weer in Nederlandse dienst als Panter. Tijdens deze periode liep de torpedomotorboot op een mijn, maar kon te Fowey worden binnengebracht. Op laatstgenoemde datum werd de boot vervangen door de moderne MGB114. De Britten gebruikten de MGB46 nog een tijdje als oefenboot, maar de boot werd nog voor het einde van de oorlog afgeschreven.
Eind jaren '30 wilde Nederland een serieuze poging ondernemen om kleine, snelle torpedoboten te bouwen naar Brits voorbeeld. Omdat Nederland geen enkele ervaring had met het ontwerpen en bouwen van torpedomotorboten, besloot men om een prototype te laten bouwen bij de British Power Boat Company. De boot werd op 6 november 1939 als TM51 in Nederlandse dienst gesteld. Omdat de Koninklijke Marine bang was dat de Royal Navy alle beschikbare schepen in Groot-Brittannië op zou eisen, kreeg de commandant opdracht de torpedomotorboot tijdens een proefvaart over te brengen naar Nederland.
De Schiedamse bouwwerf Gusto kreeg vervolgens de opdracht om een 18-tal boten te bouwen naar voorbeeld van de TM51: TM52 t/m TM69. Alle in aanbouw zijnde boten vielen in Duitse handen.
{{||$:/_ship_template}}
* <<slider "Torpedomotorboten TM6, TM8 en TM5 ca. 1941" Schepen399>>
De TM 6 werd op 14 augustus 1940 in dienst gesteld. Op 2 maart 1942 werd de torpedomotorboot bij Soerabaja door de eigen bemanning tot zinken gebracht.
De TM7 werd op 6 juli 1940 in dienst gesteld. Op 2 maart 1942 werd de torpedomotorboot tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Torpedomotorboten TM6, TM8 en TM5 ca. 1941" Schepen399>>
De TM8 werd op 20 september 1940 in dienst gesteld. Op 8 maart 1942 werd de TM8 bij Soerabaja door de eigen bemanning tot zinken gebracht.
De TM9 werd in 1941 in dienst gesteld. Op 8 maart 1942 werd de TM9 bij Soerabaja door de eigen bemanning tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Torpedomotorboot TMI ca. 1929" Schepen409>>
De snelle boten die de Britten tijdens de Eerste Wereldoorlog gebruikten en die 55 voet lang waren en zo'n 12 ton groot waren, werden nog Coastal Motor Boats (CMB's) genoemd. Met de inkrimping van de Royal Navy in 1920 kwam een einde aan de CMB's.
In de jaren tussen de beide wereldoorlogen werden echter de experimenten met de snelle motorboten voortgezet. Thornycroft bouwde in steeds grotere aantallen, verbeterde versies waarbij eveneens geleverd werd aan buitenlandse marines. In 1929 kwamen vier van deze boten in Nederlandse dienst als TM I t/m TMIV. Over het algemeen waren deze boten identiek aan de CMB's.
De TMI, TMII en TMIV lagen sinds 1939 in Soerabaja in conservatie. De TM III was al in 1933 van de sterkte afgevoerd na zwaar beschadigd te zijn. Haar drie zusterscheepjes volgden in 1941.
Op 27 september 1933 op de rede van Soerabaja gezonken, doch twee dagen later gelicht en uit de sterkte afgevoerd.
<<<
''Note:''<br>Dit is eigenlijk TMIII (1) want er is een latere - experimentele - TMIII ([[TMIII (1938)]]).
<<<
De [[TMIII (1938)]] was een stalen experimentele torpedomotorboot die op 24 juni 1938 in dienst gesteld werd. De boot werd op 2 maart 1942 door marinepersoneel vernield.
<<<
''Note:''<br>Dit is eigenlijk TMIII (2) want er was een eerdere TMIII ([[TMIII (1929)]]).
<<<
{{||$:/_ship_template}}
* <<slider "Torpedomotorboot TMIV 1930" Schepen408>>
Technische Opleiding Koninklijke Marine
[img width=100 [Ton Gerner|Familie/Ton_200.jpg]]
{{||$:/_ship_template}}
* <<slider "Duikboot Tonijn ca. 1980" Schepen329>>
! [[Torpedo ships]]
!! Destroyers
<br>
# ''Fret'' destroyers (1911-1914)
#* [[Wolf (1911)]]
#* [[Fret (1911)]]
#* [[Bulhond (1912)]]
#* [[Jakhals (1912)]]
#* [[Lynx (1913)]]
#* [[Hermelijn (1913)]]
#* [[Vos (1914)]]
#* [[Panter (1914)]]
# ''Van Ghent'' destroyers (1928)
#* [[De Ruyter (1928)]], 1933- [[Van Ghent (1934)]]
#* [[Evertsen (1929)]]
#* [[Kortenaer (1928)]]
#* [[Piet Hein (1929)]]
# ''Van Galen'' destroyers (1929-1931)
#* [[Van Galen (1929)]]
#* [[Witte de With (1930)]]
#* [[Banckert (1930)]]
#* [[Van Nes (1931)]]
# ''Gerard Callenburgh'' destroyers (1941)
#* ~~Gerard Callenburgh~~
#* [[Isaac Sweers (1941)]]
#* ~~Tjerk Hiddes~~
#*~~Philips van Almonde~~
# [[Campbeltown (1941)]] destroyer (1919/1941)
# ''Van Galen'' destroyers (1942)
#* [[Van Galen (1942)]]
#* [[Tjerk Hiddes (1942)]]
# [[Banckert (1945)]] destroyer
# ''Piet Hein'' destroyers (1943/1945-1946)
#* [[Evertsen (1946)]]
#* [[Piet Hein (1945)]]
#* [[Kortenaer (1945)]]
# [[Marnix (1947)]] destroyer
# ''Holland'' destroyers (1954-1955)
#* [[Holland (1954)]]
#* [[Zeeland (1955)]]
#* [[Noord Brabant (1955)]]
#* [[Gelderland (1955)]]
# ''Friesland'' destroyers (1956-1958)
#* [[Friesland (1956)]]
#* [[Groningen (1956)]]
#* [[Limburg (1956)]]
#* [[Overijssel (1957)]]
#* [[Drenthe (1957)]]
#* [[Utrecht (1957)]]
#* [[Rotterdam (1957)]]
#* [[Amsterdam (1958)]]
# ''Tromp'' guided missile destroyers (1975-1976)
#* [[Tromp (1975)]]
#* [[De Ruyter (1976)]]
# ''De Zeven Provinciën'' guided missile destroyers (2002-2005)
#* [[De Zeven Provinciën (2002)]]
#* [[Tromp (2003)]]
#* [[De Ruyter (2004)]]
#* [[Evertsen (2005)]]
!! 1st class torpedo boats
<br>
# ''Ardjoeno'' 1st class torpedo boats (1887-1892)
#* [[Ardjoeno (1887)]]
#* [[Batok (1889)]]
#* [[Dempo (1887)]]
#* [[Cycloop (1888)]]
#* [[Habang (1888)]]
#* [[Goentoer (1892)]]
#* [[Empong (1890)]]
#* [[Foka (1890)]]
#* [[Krakatau (1888)]]
#* [[Idjen (1889)]]
# [[Cerberus (1888)]] 1st class torpedo boat
# ''Lamongan'' 1st class torpedo boats (1891)
#* [[Lamongan (1891)]]
#* [[Nobo (1891)]]
#* [[Makjan (1891)]]
# ''Hydra'' 1st class torpedo boats (1900-1903)
#* [[Hydra (1900)]]
#* [[Scylla (1900)]]
#* [[Minotaurus (1900)]]
#* [[Python (1902)]]
#* [[Sphinx (1903)]]
# ''Ophir'' 1st class torpedo boats (1901-1903)
#* [[Ophir (1901)]]
#* [[Pangrango (1901)]]
#* [[Rindjani (1901)]]
#* [[Smeroe (1903)]]
#* [[Tangka (1903)]]
#* [[Wajang (1903)]]
# ''Johan van Brakel'' (G) torpedo boats (1905)
#* [[Johan van Brakel (1905)]] (G1)
#* [[Jan Danielzoon van der Rijn (1905)]] (G2)
#* [[Meijndert Jentjes (1905)]] (G3)
#* [[Willem Willemsze (1905)]] (G4)
# ''Draak'' torpedo boats (1907)
#* [[Draak (1907)]]
#* [[Krokodil (1907)]]
#* [[Zeeslang (1907)]]
# ''G13'' torpedo boats (1914)
#* [[G13 (1914)]]
#* [[G14 (1914)]]
#* [[G15 (1914)]]
#* [[G16 (1914)]]
# ''Z1'' torpedo boats
#* ~~Z1~~ (completed for Germany)
#* ~~Z2~~ (completed for Germany)
#* ~~Z3~~ (completed for Germany)
#* ~~Z4~~ (completed for Germany)
# ''Z5'' torpedo boats (1916-1917)
#* [[Z5 (1917)]]
#* [[Z6 (1917)]]
#* [[Z7 (1916)]]
#* [[Z8 (1916)]]
# ''Z1'' torpedo boats (1919-1921)
#* [[Z1 (1919)]]
#* [[Z2 (1921)]]
#* [[Z3 (1920)]]
#* [[Z4 (1920)]]
# ~~Bouclier~~ torpedo boat (1938/1940) Ex-French torpedo boat captured by British and transferred to Dutch Navy 31/8/1940, but because of problems with a machinery actually not entered service.
!! 2nd class torpedo boats
<br>
# [[I (1876)]] 2nd class spar torpedo boat (1876)
# [[III (1876)]] 2nd class spar torpedo boat (1876)
# [[II (1877)]] 2nd class spar torpedo boat (1877)
# [[IV (1879)]] 2nd class spar torpedo boat (1879)
# ''V'' 2nd class spar torpedo boats (1879)
#* [[V (1879)]]
#* [[VI (1879)]]
#* [[VII (1879)]]
#* [[VIII (1879)]]
#* [[IX (1879)]]
# ''X'' 2nd class spar torpedo boats (1879)
#* [[X (1879)]]
#* [[XI (1879)]]
#* [[XII (1879)]]
# ''XIII'' 2nd class spar torpedo boats (1879-1881)
#* [[XIII (1879)]]
#* [[XIV (1879)]]
#* [[XV (1881)]]
#* [[XVI (1881)]]
#* [[XVII (1880)]]
#* [[XVIII (1881)]]
# ''XIX'' 2nd class spar torpedo boats (1881)
#* [[XIX (1881)]]
#* [[XX (1881)]]
# ''Hekla'' (XXI) 2nd class torpedo boats (1891-1892)
#* [[Hekla (1891)]] (XXI)
#* [[Etna (1892)]] (XXII)
# ''XXI Jasper Leynssen'' 2nd class torpedo boats (1891)
#* No.III [[Jan Haring (1891)]]
#* No.XXI [[Jasper Lijnsen (1891)]]
#* No.XXII [[Jacob Hobein (1891)]]
# K1 ''Michiel Gardeijn'' torpedo boats (1905)
#* [[Michiel Gardeijn (1905)]] (K1)
#* [[Christiaan Cornelis (1905)]] (K2)
#* [[Willem Warmont (1905)]] (K3)
Met torpedo werd vanaf de 19e eeuw elk explosief bedoeld dat op of in het water werd gebruikt.
!!!! Spartorpedo
De spartorpedo was een lange houten paal van ± 7.5 meter, waaraan een stalen ketel was gemonteerd gevuld met 50 kg van het zeer explosieve schietkatoen.
!!!! Vistorpedo
In 1885 werd door de marine de eerste zelfvoortbewegende 'Visch'-torpedo aangekocht.<br>
In 1890 werden een aantal 'Visch' - torpedoboten aangekocht.
!!! Torpedoboot
Een relatief klein en snel oorlogsschip ontworpen om torpedo's te lanceren. Ze werden gebouwd om grote, langzame en zwaarbepantserde schepen aan te vallen.
{{Torpedo's}}
<<w>>
!!! Torpedobootjager
Een snel en wendbaar oorlogsschip, dat bedoeld is voor het escorteren van grotere schepen in een vloot of gevechtseenheid en daarbij weerstand moet leveren tegen kleinere, maar krachtige aanvallers met korte-afstandsgeschut (oorspronkelijk torpedoboten, maar later ook onderzeeboten en vliegtuigen).
<<w>>
<$tiddler tiddler=<<currentTab>>>
{{||$:/_pennantnummer_template}}
</$tiddler>
<!--
1) Kloon $:/_pennantnummer_details_template
2) Hernoem tiddler tot 'Schepen' (b.v. Fregatten)
3) Vervang in veld 'filter' de 'C' (voor kruisers) door het bijbehorende voorvoegsel toe (voor fregatten 'F')
<<penlinks filter char>>
vereist in TW5.1.17 $:/core/modules/filters/regexps.js
-->
!!! Torpedomotorboot
Snelle motorboot, uitgerust met torpedo's en mitrailleurs; opvolger van de torpedoboot.
!!! Torpedowerkschip
Een van de <<popup ondersteuningsschepen Ondersteuningsschip>>.<br>
Een torpedowerkschip gaat met onderzeeboten mee op oefening en fungeert onder meer als varende onderhoudsloods voor torpedo’s.<br>
Nadat een oefentorpedo is gelanceerd en aan het einde van zijn baan boven komt drijven, vist de bemanning van de Mercuur deze uit het water en maakt hem gereed voor de volgende lancering.
Tevens fungeert het schip als doelwit voor de onderzeeboten. Hierbij wordt niet op maar onder het schip door geschoten. Het schip heeft zelf ook een torpedolanceerbuis. Deze wordt gebruikt voor het doen van beproevingen met torpedo’s.
<<w>>
<<imageh 1920_Schoonzuigen_ATAX_taxi_Het_Leven.jpg 400>>
//Schoonzuigen van een ATAX taxi. Het Leven, 1919.//
<<imageh 1920_Molenpad_schoonmaken_ATAX_taxis_Het_Leven.jpg 400>>
//Molenpad, schoonmaken ATAX taxi's. Het Leven, 1919.//
<<imageh 1912_Rokin_met_Atax.jpg 400>>
//Rokin met ATAX taxi, 1912.//
<<imageh 1917_Leidschestraat_met_elektrische_taxi_Atax.jpg 400>>
//Elektrische ATAX taxi in de Leidsestraat, 1917.//
<<imageh 1910_Damrak_1e_telefoon_bij_ATAX_standplaats_Het_Leven.jpg 400>>
//Damrak, 1e telefoon bij ATAX taxistandplaats. Het Leven, 1910.//
<svg width="80px" height="80px" viewBox="0 0 444.819 444.819">
<path d="M352.025,196.712L165.884,10.848C159.029,3.615,150.469,0,140.187,0c-10.282,0-18.842,3.619-25.697,10.848L92.792,32.264
c-7.044,7.043-10.566,15.604-10.566,25.692c0,9.897,3.521,18.56,10.566,25.981l138.753,138.473L92.786,361.168
c-7.042,7.043-10.564,15.604-10.564,25.693c0,9.896,3.521,18.562,10.564,25.98l21.7,21.413
c7.043,7.043,15.612,10.564,25.697,10.564c10.089,0,18.656-3.521,25.697-10.564l186.145-185.864
c7.046-7.423,10.571-16.084,10.571-25.981C362.597,212.321,359.071,203.755,352.025,196.712z"/>
</svg>
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Triton ca. 1925" "Schepen342">>
Ex-stoomtrawler 'Onze Trawler' (1906); werd in 1914 omgebouwd tot mijnenlegger en in 1933 tot duikvaartuig.
{{||$:/_ship_template}}
* <<slider "Bergingsvaartuig Triton 1950" Schepen407>>
* <<slider "Bergingsvaartuig Triton ca. 1950" Schepen406>>
Voormalig Japans bergingsvaartuig, als krijgsbuit verkregen in 1948.<br>
In dienst als sleepboot en bergingsvaartuig t.b.v. het duikbedrijf Oost Indië.<br>
In 1953 aan Indonesië overgedragen onder naamsein 926.
{{||$:/_ship_template}}
* <<slider "Duikvaartuig Triton 1971" Schepen262>>
!!! Troepentransportschip
Een van de <<popup ondersteuningsschepen Ondersteuningsschip>>.<br>
Een troepentransportschip is een schip dat wordt gebruikt om soldaten te vervoeren, hetzij in vredestijd of in oorlogstijd. Tijdens de WWII werden troepentransportschepen in snel tempo gebouwd, zoals onder andere de liberty- en victory-schepen.
<<w>>
{{||$:/_ship_template}}
* <<slider "Kruiser Tromp 1945" Schepen117>>
* <<slider "Kruiser Tromp 1946" Schepen142>>
{{NI}}<br>1948-1955 trainingsschip, 1955-1968 logementsschip.
{{||$:/_ship_template}}
* <<slider "Fregat Tromp ca. 1995" Schepen185>>
Z.g 'guided missile destroyers'.
{{||$:/_ship_template}}
* <<slider "Fregat Tromp 2010" Schepen179>>
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Tydeman ca. 1930" Schepen398>>
Speciaal gebouwd als opnemingsvaartuig voor de ''Koninklijke Marine''. {{NI}} <br>
In 1934 onderhoud te Tandjong Priok. Daarna in conservatie genomen.<br>
In 1938 als Gouvernementsopnemingsvaartuig weer in dienst gesteld. In 1939 gemilitariseerd.<br>
De Tydeman werd op 4 maart 1942 in Tjilatjap tijdens Japanse bombardementen door een 'near miss' (indirecte bomtreffer) tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Oceanografisch onderzoeksvaartuig Tydeman ca. 1990" Schepen208>>
* <<slider "Oceanografisch onderzoeksvaartuig Tydeman ca. 1990" Schepen269>>
Nu expeditiecruiseschip ''Plancius''
Waarom de toevoeging W ontbreekt aan de Fokker T IV en IVa
---
In Indie hadden elk type vooral marinevliegtuig een letter. Bijvoorbeeld...
D - Wal
H - P51D
K - FK51
X - DO24
Y - PBY5
V - CVIIw (Kingfisher??)
T - TIVa
M - B10
Enz...
In Nederland
L - CVIIw
E - FK51(MLD)
F - CXIVw
G - CVIIIw
R - TVIIIw
S - SIX, SIII
W -CXIw - van Berkel
Z - CVc
Enz...en die ik nog vergeten ben.
---
De interne Fokker notitie begint optimistisch met 'teneinde mogelijke verwarring uit te sluiten'.
Behalve voor het selecte gezelschapje van toen, intern bij Fokker, is dat niet erg gelukt.
Het roept nog steeds vraagtekens op, althans bij mij als geïnteresseerde.
De diepere gedachtes achter de schijnbaar alfabetische volgorde van de type aanduidingen blijft moeilijk te peilen.
De A ontbreekt.
Van G wordt gesprongen naar S en T.
Het rijtje volgend:
B
Er was een bootje, in 1912, de W1.
De boten B3 en 4 werden door de MLD kennelijk niet gewaardeerd.
Ze vlogen in de States.
C
Verkenner.
D
Jager.
Met de C en de D Fokkers heb ik destijds leren leven, maar waarom de D
b.v. een jager was, heb ik nooit echt begrepen.
Ach, WW1 benaming dacht ik dan.
E
Dat was duidelijk. De E van Eindecker!
Maar nu blijkt het Sportvliegtuig te zijn...
De E-3 met parabellum mitrailleur was beslist niet bedoeld als
sportvliegtuig, lijkt me.
F
Erg veel in het nieuws vroeger, wereld omspannend.
F voor Fokker verkeersvliegtuig. Logisch toch!
Nooit geweten dat de F niet voor Fokker staat.
Hoe verzin je het.
Bij Sikorsky bijvoorbeeld is dat zo heerlijk, S voor vliegtuig, vliegboot of
helicopter. Het maakt niet uit wat!
Het is zelfs in het tailrotorpedaal verwerkt, wat weer een tikje overdreven
lijkt.(S 58).
G
De G is al uitgelegd. Het Fokker glijmiddel.
De G-1 heeft hier niets mee te maken.
Maar waarom had de D21 op een later tijdstip wél de D van jager, maar
de G-1 weer niet?
S
School. Internationaal gezien een wat onhandige naam.
T
Torpedo en Bommen.
Om de T IV te noemen: dit was voornamelijk een Verkenner/bomvliegtuig.
Elias schrijft dat torpedo's in de Oost nog steeds 'pro memorie' waren.
Mooie uitdrukking voor 'niet aanwezig'.
Let wel, Elias schrijft daar niet alleen over, hij vloog daar toen actief rond.
En de MLD oefende met torpedo's onder een C V dacht ik. Verre van T.
Waarom had Fokker niet een veel voor de hand liggender naam voor
Bomvliegtuig?
Na WW2 veranderde de wereld voor Fokker.
Overgebleven zijn de S, met minder succes. en de F , overal ter wereld, en tot op het einde van het Fokker concern.
Laat ik nou toch jaren lang op de F27 vliegend gedacht hebben dat de F voor Fokker stond?
Het deed me in latere jaren altijd deugd als je bij zons opkomst je DC8 moest gaan opwinden ergens, en er stond weer zo'n bekende staart op het platform!
Zo als op de foto in Dar es Salaam, 1978.
Ik realiseer me dat een gek meer kan vragen dan...enz.
Bij deze.
Tracker
---
D21 = Jager
G1 = Jacht Kruiser
---
Volgens mij zit het antwoord verscholen in de letter ´T´. Die stond voor torpedovliegtuigen en die zijn altijd al voor maritieme toepassingen bestemd geweest. Anders dan bijvoorbeeld verkenningsvliegtuigen (de klasse ´C´) waarvan er soms wel en soms niet een drijverversie werd ontwikkeld.
{{||$:/_ship_template}}
* <<slider "Kanonneerboten Hefring & Tyr ca. 1910" Schepen387>>
ex IJM384, Erica, Derika III (1902).<br>De trawler werd in 1940 in Engeland gevorderd en tot hulpmijnenveger omgebouwd. Nam deel aan mijnenveegoperaties in de wateren rond Groot-Brittannië. Op 23 november 1942 werd het schip uit dienst gesteld en overgedragen aan de Royal Navy. Na de oorlog is het teruggegeven aan de oorspronkelijke eigenaar.
{{||$:/_ship_template}}
* <<slider "Opleidingsschip Urania 1960" Schepen338>>
De Urania werd in 1928 door de Haarlemsche Scheepsbouw Maatschappij gebouwd als een privé-jacht Tromp. Het was een schoener met oorspronkelijk een 'wishbone' tuigage wat na een jaar gewijzigd werd in een gaffel-schoenertuig met breefok.<br>
Begin 1938 werd de Urania gekocht door de Nederlandse marine en als Urania in actieve dienst gesteld.<br>
In mei 1940 werd het schip door de Duitsers in beslag genomen en door de Duitse marine ingezet voor de opleiding van Duitse aspirant officieren bij de Marine Schule Flensburg / Murwick. In 1946 werd het schip teruggevonden en teruggebracht naar Nederland. Sindsdien heeft het schip gevaren voor adelborsten bij het <<mouseover KIM KIM>>, en incidenteel ook voor andere opleidingen bij de Nederlandse marine.<br>
In 1957 werd de Bermuda kits tuigage ingevoerd, wat wil zeggen dat de voormast langer is dan de achtermast, de roerkoning zich achter de bezaansmast bevindt en het oppervlak van de Bezaan minimaal 60% bedraagt van die van het grootzeil.<br>
In 2001 is er tijdens slecht weer een gat geslagen in de romp en werd besloten tot ingrijpende renovatie. Al snel bleek dat dit niet haalbaar was, en werd er een nieuwe romp gebouwd, gebaseerd op dit schip, zie [[Urania (2004)]].
{{||$:/_ship_template}}
* <<slider "Opleidingszeilschip Urania ca. 2004" Schepen204>>
De ''Urania'' is een opleidingszeilschip van het Nederlandse Koninklijk Instituut voor de Marine (KIM). Het schip wordt door adelborsten gebruikt voor het verwerven van een groot deel van hun nautische kennis. De Urania is een van twee schepen die hiervoor worden gebruikt. Het andere schip is Van Kinsbergen.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Urk ca. 1950" Schepen193>>
{{||$:/_ship_template}}
* <<slider "Mijnenjager Urk 2009" Schepen192>>
In 1950 overgedragen aan de Nederlandse marine ([[Mutual Defense Assistance Act|https://en.wikipedia.org/wiki/Mutual_Defense_Assistance_Act]]).
{{||$:/_ship_template}}
* <<slider "Pantserdekschip Utrecht 1900" Schepen149>>
Na actieve dienst omgebouwd tot logementschip voor duikbootbemanningen te Vlissingen.
{{||$:/_ship_template}}
* <<slider "Opiumjager Arend of Valk ca. 1936" Schepen390>>
{{NI}} Vanaf 1930 tot 1939 fungeerde het snelle stoomschip als opiumjager. Na militarisatie ingezet als patrouillevaartuig en moederschip voor Consolidated PBY Catalina vliegboten (vanuit Ambon).<br>
In januari 1942 teruggeroepen naar Tandjong Priok en ingezet als konvooibegeleider. Op 4 maart 1942 arriveerde de Valk in Tjilatjap na een konvooireis. Hier liep de Valk schade op door near misses van Japanse vliegtuigen. Op 7 maart 1942 werd de Valk in de haveningang van Tjilatjap tot zinken gebracht.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Van 't Hoff ca. 1970" Schepen190>>
Oorspronkelijk USS Burrows (DE-105).<br>{{US-NL}}
{{||$:/_ship_template}}
* <<slider "Fregat Van Amstel 1993" Schepen293>>
!!! Van Berkel, bekend van de snijmachines en weegschalen.
Tijdens de Eerste Wereldoorlog hield de onderneming zich ook bezig met het vervaardigen van munitie en geweren voor het Nederlandse leger. In 1918 werd ook een vliegtuigbouwafdeling opgericht. Men kreeg steun van de Nederlandse regering. De eerste opdracht bestond uit het bouwen, in licentie, van 35 Hansa-Brandenburg W.12 watervliegtuigen voor de MLD. Het eerste exemplaar vloog in 1919 en werd de [[W-A|Van Berkel W-A]] genoemd. De W-A's werden zowel in Nederland als in Nederlands-Indië gebruikt en vlogen nog tot 1933.
In 1919 kreeg Van Berkel meteen ook de opdracht tot het vervaardigen van een langeafstandszeeverkenner. Het ontwerp was gebaseerd op de Hansa-Brandenburg W.29, maar ir. Von Baumhauer gaf een geheel eigen draai aan het oorspronkelijke ontwerp. Het watervliegtuig (type [[W-B|Van Berkel W-B]]) was groter en de motor sterker. De MLD bestelde er zeven en in 1920 maakte het eerste exemplaar zijn eerste vlucht. De levering van de rest liet lang op zich wachten, pas in 1923 kreeg de MLD het zevende exemplaar. Allen waren in gebruik in Nederlands-Indië. De prestaties vielen tegen en in 1933 werden ook deze vliegtuigen buiten gebruik gesteld.
De afdeling vliegtuigbouw van Van Berkel was in 1921 al gesloten. Opdrachten bleven uit, de ontwikkeling van de W-D, de W-E en de W-F kwamen niet verder dan de tekentafel en contacten met het Duitse Dornier liepen op niets uit. Van Berkel ging zich weer toeleggen op weegschalen en snijmachines.
[[link|https://www.aironline.nl/weblog/2016/06/02/22042016-van-berkel-wa-replica-in-aanbouw-in-het-aviodrome/]]
<iframe src='https://www.aironline.nl/weblog/2016/06/02/22042016-van-berkel-wa-replica-in-aanbouw-in-het-aviodrome/' frameborder="0" width="1024"; height="600"></iframe>
{{||$:/_plane_template}}
* <<slider "Van Berkel W-A 1919" Schepen417>>
* <<slider "Van Berkel W-A ca. 1920" Schepen146>>
* <<slider "Van Berkel W-A 1921" Vliegtuig044>>
* <<slider "3x Van Berkel W-A 1925" Vliegtuig095>>
* <<slider "Van Berkel W-A 1925" Vliegtuig131>>
* <<slider "Van Berkel W-A 1925" Vliegtuig132>>
* <<slider "Van Berkel W-A 1928" Vliegtuig099>>
* <<slider "O.a. een Van Berkel W-A 1929" Vliegtuig037>>
* <<slider "Van Berkel W-A 1929" Vliegtuig008>>
In licentie gebouwde Hansa-Brandenburg W.12 met enige aanpassingen:
* verhoogd onderstel
* geen ailerons in de ondervleugel
{{||$:/_plane_template}}
* <<slider "Van Berkel W-B prototype 1919" Vliegtuig184>>
* <<slider "Van Berkel W-B prototype 1919" Vliegtuig222>>
''N.B.:'' Silhouet van Hansa-Brandenburg W.29 waarop de Van Berkel W-B gebaseerd is (maar wel van afwijkt!)
!! Van Berkel
||| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[W-A|Van Berkel W-A]] |{{Van Berkel W-A!!soort}} | 40| W1 - W20<br>W51 - W70 | {{Van Berkel W-A!!per}} |
|[[W-B|Van Berkel W-B]] |{{Van Berkel W-B!!soort}} | 6| E1 - E6 | {{Van Berkel W-B!!per}} |
* <<slider "Registratie Van Berkel W-A" "Registratie Van Berkel W-A">>
* <<slider "Registratie Van Berkel W-B" "Registratie Van Berkel W-B">>
* <<slider "Historie Van Berkel" [[Historie Van Berkel]]>>
{{||$:/_ship_template}}
* <<slider "Wachtschip, v.m. inschietvaartuig/communicatievaartuig Van Bochove 2012" Schepen337>>
Na verwijdering van de lanceerbuizen (1976) in gebruik als communicatievaartuig.<br>
Nadat het schip eind 1986 uit dienst werd gesteld wegens een defecte hoofdmotor werd het door toedoen van toenmalig schipper en oprichter van de waterscoutinggroep Suanablake in Korendijk, Rob Pentland, als wachtschip in gebruik genomen.<br>
In 2014 werd het schip formeel overgedragen aan de Stichting Scouting Korendijk.
Oorspronkelijk USS Gustafson (DE-182).<br>{{US-NL}}
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Van Galen 1944" Schepen237>>
Ex-Britse ''Noble''; al voor de afbouw aan Nederland overgedragen.
{{||$:/_ship_template}}
* <<slider "Fregat Van Galen ca. 1984" Schepen478>>
In de periode juli 1977 t/m november 1979 werd het fregat te Den helder gemoderniseerd.<br>
Na de uitdienstname is het schip verkocht aan Indonesië en daar in dienst gesteld als ''Yos Sudarso''.
{{||$:/_ship_template}}
* <<slider "Fregat Van Galen 2006" Schepen278>>
{{||$:/_ship_template}}
* <<slider "Torpedobootjager De Ruyter ca. 1929 (na 1931 Van Ghent)" Schepen074>>
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Van Kinsbergen 1944" Schepen066>>
In 1939 artillerie-instructieschip ter vervanging van oude pantserkruiser Gelderland.<br>
WWII patrouillevaartuig West-Indië.<br>
1946-1950 Nederlans-Indië (politionele acties).<br>
1952-1954 Nieuw-Guinea.<br>
1955-1959 logementschip.
{{||$:/_ship_template}}
* <<slider "Fregat Van Kinsbergen ca. 1987" Schepen475 >>
Na de uitdienstname werd de Van Kinsbergen verkocht aan Griekenland.<br>
Bij de Griekse marine is het schip op 1 maart 1995 in dienst genomen als ''Navarinon'' (F461).
{{||$:/_ship_template}}
* <<slider "Opleidingsschip Van Kinsbergen 2016" Schepen205>>
De ''Van Kinsbergen'' is een opleidingsschip waarmee de nautische praktijktraining voor de Koninklijke Marine wordt verzorgd. Het schip is hier specifiek voor gebouwd en uitgerust. Het schip beschikt naast de navigatiebrug over een secundaire, volledig uitgeruste trainingsbrug. Het schip biedt plaats aan maximaal 16 cursisten. Toekomstige zeeofficieren (adelborsten) worden op deze manier praktische vaardigheden bijgebracht die nodig zijn om als officier van de wacht op de brug van een marineschip te kunnen werken.
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Van Meerlant 1938" Schepen063>>
* <<slider "Mijnenlegger Van Meerlant ca. 1938" Schepen148>>
In 1940 naar Engeland ontsnapt, in 1941 uitgeleend aan de Britse marine.<br>
De Van Meerlant liep in 1941 op een mijn in de mond van de Theems.
{{||$:/_ship_template}}
* <<slider "Fregat Van Nes ca. 1974" Schepen479>>
In de periode maart 1978 t/m november 1980 werd het fregat te Den helder gemoderniseerd.<br>
Na de uitdienstname is het schip verkocht aan Indonesië en daar in dienst gesteld als ''Oswald Siahaan''.
{{||$:/_ship_template}}
* <<slider "Fregat Van Nes ca. 1998" Schepen294>>
{{||$:/_ship_template}}
* <<slider "Schroefstoomschip Van Speijk 1896" Schepen287>>
Schroefstoomschepen [[De Ruyter (1885)]] en [[Van Speijk (1887)]] uit deze klasse hadden slechts één schoorsteen.
{{||$:/_ship_template}}
* <<slider "Fregat Van Speijk 1959" Schepen112>>
* K-klasse (''K1'', ''K2'', ''K3'') in 1940 in aanbouw. Afgebouwd door Duitsers en als K1, K2 en K3 in dienst genomen.
* ''K3'' kwam na WWII terug als Van Speijk en werd in 1953 verbouwd tot fregat.
{{||$:/_ship_template}}
* <<slider "Logementsschip Flores ca. 1967" Schepen240>>
{{||$:/_ship_template}}
* <<slider "Fregat Van Speijk ca. 1974" Schepen480>>
In de periode december 1976 t/m januari 1978 werd het fregat te Den helder gemoderniseerd.<br>
Na de uit dienst name is het schip verkocht aan Indonesië en daar in dienst gesteld als ''Slamet Riyadi''.
{{||$:/_ship_template}}
* <<slider "Ondersteuningsschip Van Speijk (ex Dokkum) 1986" Schepen239>>
Van 1960-1965 werd logementsschip [[Flores (1926)]] tijdelijk omgedoopt in Van Speijk.<br>
<<popup "Naam Van Speijk""Van Speijk_info">><br>
{{||$:/_ship_template}}
* <<slider "Fregat Van Speijk 1997" Schepen213>>
* <<slider "Fregat Van Speijk 2009" Schepen270>>
Koning Willem I besloot dat er altijd een schip bij de Koninklijke Marine zal varen dat Van Speyk heet (Koninklijk Besluit nº 81, den 11den februari 1831).
Schepen met de naam Van Speijk:
|Periode |Marineschip |h
| 1832 - 1842 |kuilkorvet Van Speijk (ex-Argo)|
| 1842 - 1887 |korvet Van Speijk (ex-Medusa)|
| 1887 - 1946 |schroefstoomschip [[Van Speijk (1887)]]|
| 1946 - 1960 |kanonneerboot [[Van Speijk (1946)]]|
| 1960 - 1965 |kanonneerboot [[Flores (1926)]] tijdelijk omgedoopt in [[Van Speijk (1960)]]|
| 1965 - 1986 |fregat [[Van Speijk (1967)]]|
| 1986 - 1995 |ex-mijnenveger [[Dokkum (1955)]] tijdelijk omgedoopt in [[Van Speijk (1986)]]|
| 1995 - |fregat [[Van Speijk (1995)]]|
{{||$:/_ship_template}}
* <<slider "Mijnenveger Van Straelen ca. 1970" Schepen190>>
Houten ondiepwatermijnenveger.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Van Well Groeneveld ca. 1972" Schepen189>>
Oorspronkelijk USS Stern (DE-187).{{US-NL}}
In 1972 omgebouwd tot mijnenjager.
<<imageh 1920-1940_Luchtfoto_Veere.jpg 400>>
//Luchtfoto van Veere, ca. 1925.<br>
Linksonder de mijnenloods, in het midden voormalig marinevliegkamp Veere waar Fokker in de periode 1919-1926 vliegtuigen bouwde.//
<<imageh 1923_fabriek_Fokker_Veere.jpg 400>>
//Fokker fabriek (links 1919-1926) en marinevliegkamp (rechts) Veere, 1923.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/e1e8d31a-95df-b337-1a7c-df6898f342e8/media/1b01455d-6573-17da-c2f2-41dc9d08f9aa?mode=detail&view=horizontal&q=veere&rows=1&page=12&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
|Veld |Omschrijving |h
|b|breedte (m)|
|extra|extra info|
|gew|gewicht (kg)|
|h|hoogte (m)|
|hp|vermogen (hp of kW toevoegen)|
|image|tekening op schaal|
|image-w|correctiefactor voor tekening op schaal (px)|
|info|informatie|
|l|lengte (m)|
|man|bemanning|
|opp|vleugeloppervlak (m^^2^^)|
|per|dienstperiode|
|plaf|plafond (m)|
|rad|actieradius|
|soort|type vliegtuig|
|speed|snelheid (km/hr) (max./kruis)|
|url-i1 |titel info #1|
|url-i2 |titel info #2|
|url1 |url info #1|
|url2 |url info #2|
|Veld |Omschrijving |h
|b |breedte (m)|
|class |klasse|
|d |diepgang (m)|
|extra |extra info|
|hp |vermogen (pk)|
|image |tekening op schaal|
|image-w |correctiefactor voor tekening op schaal (px)|
|info |informatie|
|l |lengte (m)|
|man |bemanning|
|per |dienstperiode|
|reg |registratie|
|ships |schepen in klasse|
|soort |type schip|
|speed |snelheid (knopen)|
|ton |waterverplaatsing|
|url-i1 |titel info #1|
|url-i2 |titel info #2|
|url1 |url info #1|
|url2 |url info #2|
@@color:White;background-color:Red;Om de een of andere reden verdijnt het topmenu als de toolbar aanwezig is. Check versies en volgorde stylesheets.@@<br>
Start toolbar staat op 420px zodat toolbar rechts ''na'' top menu komt. Dit werkt bij Familie!!!
# `$:/plugins/tongerner/topmenu/styles` voorzien van `list-after`: `$:/plugins/tongerner/toolbar/styles` @@color:Red;X@@
# `$:/plugins/tongerner/topmenu/styles` z-index verhoogd van 1500 naar 20000 @@color:Red;X@@
# Layout adjustments: Geen kleur en hoogte van top bar @@color:Red;X@@
# Top top menu van 8 naar 88px @@color:Red;X@@
# Top toolbar van 5 naar 45px @@color:Red;X@@
# Top toolbar plugin uitschakelen @@color:Red;√@@
# Overschreven $:/tags/TopLeftBar (van vorige versie top toolbar) verwijderd @@color:Red;X@@
Even geen nieuw idee meer.
@@.h ''Het topmenu kan bij de knoppenbalk van de Top toolbar uitgevinkt worden!!!''<br>
Na aanvinken werkt alles weer.@@
!!! Vergroten van foto's
> Het onderstaande geldt voor een muiscursor. Op een iPad kan op de gebruikelijke manier vergoot worden.
Als de muiscursor op een foto geplaatst wordt zijn er twee mogelijkheden:
# De muiscursor ziet er (meestal) uit als [img[Images/Mouse-pointer.png]] en er verschijnt een boodschap omtrent de foto.
# De muiscursor ziet er uit als [img[Images/Hand-icon.png]] of [img[Images/Cross-icon.png]] @@.BLUE en@@ er verschijnt de boodschap: `Klik voor een grotere versie (opent in een aparte tab)`.
Alleen in het 2e geval kan de foto worden vergroot door erop te klikken. De foto wordt dan in een nieuwe tab van de browser - precies schermvullend - getoond.
> @@.blue Wordt de foto niet in een aparte tab getoond (vanwege afwijkende browserinstellingen), dan kan er met de rechter muistoets op de foto geklikt worden; kies dan voor `Open link in een nieuwe tab`.@@
Verandert de muiscursor daar dan in [img[Images/Zoom-in.png]], dan kan de foto - door erop te klikken - nog verder vergroot worden.<br>
De muiscursor verandert dan in [img[Images/Zoom-out.png]] en nogmaals klikken op de foto levert weer een schermvullend beeld.
<<<
Door met [img[Images/Zoom-in.png]] op de @@.blue juiste@@ plaats van de foto te klikken wordt het aangeklikte gedeelte vergroot.<br>
M.b.v de schuifbalken van het browser window kan verder genavigeerd worden.
<<<
Voor meer achtergrondinformatie zie tab ''Algemene informatie''.<br>
Voor verkennen van de 'databank' van marineschepen zijn er meerdere mogelijkheden:
* De tab ''Scheepsklassen'' toont chronologisch de scheepsklassen - opgedeeld in 4 periodes (ca. 1860 - 1900, 1900 - 1930, 1930 - 1950 en 1950 - heden) - met de schepen die tot die klasse behoren.
* De tab ''Op naam'' toont schepen alfabetisch
** De tab ''Alle schepen'' toont alle schepen.
** Ook onderverdeeld in scheepstypen, b.v. ''Duikboten'', ''Fregatten'', ...
* De tab ''Chronologisch'' toont alle schepen chronologisch.
* De tab ''Pennantnummers'' geeft toegang tot lijsten van verschillende scheepstypen
** Per categorie (''Fregatten'', ''Kruisers'', ''Mijnenvegers/jagers'', ...) gesorteerd naar nummer.
* De tab ''Foto's'' toont:
** Alle aanwezige foto's van marineschepen via tab ''Alle foto's''.
** Ook onderverdeeld in scheepstypen, b.v. ''Duikboten'', ''Fregatten'', ...<div>
<<<
''N.B.:''<br>Gewoonlijk bevat het bijschrift van de foto een link naar informatie omtrent het getoonde schip.
<<<
</div>
*De tab ''Zoeken'' heeft 2 mogelijkheden:
** 'Standaard zoeken'; identiek aan zoeken via het menu ''Hulp'' (hoofdletterongevoelig).
** Zoek op basis van een boegnaam (oude schepen), boegnummer of pennantnummer (hoofdlettergevoelig!).
<<<
''N.B.:''
* Blauwe links (b.v. [[De Ruyter (1936)]], [[A (1930)]]) leiden naar informatie over de desbetreffende schepen met die naam.
* Rode links geven aan dat er (nog) geen informatie over het betreffende schip in de databank aanwezig is (of dat de link fout is).
<<<
Voor verkennen van de 'databank' van watervliegtuigen zijn er meerdere mogelijkheden:
* Via de tab 'Merken'. De merken zijn per tab gegroepeerd; blauwe links (b.v. [[Dornier Do J I Wal]]) leiden naar informatie over het desbetreffende watervliegtuig met die naam
* Via de tab 'Databank'. Ook hier links naar de informatie
* Via de tab 'Foto's'. In de meeste gevallen bevat het bijschrift van de foto een link naar informatie omtrent het getoonde watervliegtuig
* Via de [[zoekmogelijkheid|Zoek]] (menu ''Hulp > Zoek'').
!!! Dutch Warship Losses in the Dutch East Indies
(December 7th, 1941 - March 8th, 1942)
|Ship |Type |Date |Reason for loss |h
|[[Java (1925)]]|Light Cruiser (CL)| 27-2-1942|Torpedoed|
|[[De Ruyter (1936)]]|Light Cruiser (CL)| 27-2-1942|Torpedoed|
|[[Van Ghent (1934)]]|Destroyer (DD)| 15-2-1942|Wrecked and run aground|
|[[Evertsen (1929)]] |Destroyer (DD)| 1-3-1942|Naval gunfire|
|[[Piet Hein (1929)]]|Destroyer (DD)| 19-2-1942|Naval gunfire|
|[[Kortenaer (1928)]]|Destroyer (DD)| 27-2-1942|Torpedoed|
|[[Witte de With (1930)]]|Destroyer (DD)| 2-3-1942|Bombed and scuttled|
|[[Banckert (1930)]]|Destroyer (DD)| 2-3-1942|Bombed and scuttled|
|[[Van Nes (1931)]]|Destroyer (DD)| 17-2-1942|Bombed|
|[[KVII (1922)]]|Submarine (SS)| 18-2-1942|Bombed|
|[[KX (1923)]]|Submarine (SS)| 2-3-1942|Depth charged and scuttled|
|[[KXVI (1934)]]|Submarine (SS)| 24-12-1941|Sunk by torpedo from Japanese submarine I-66|
|[[KXVII (1933)]]|Submarine (SS)| probably 21-12-1941|Sunk after hitting a Japanese seamine|
|[[O16 (1936)]]|Submarine (SS)| 15-12-1941|Sunk after hitting a Japanese seamine|
|[[O20 (1939)]]|Submarine (SS)| 19-12-1941|Dept charged and scuttled|
|[[KXIII (1926)]]|Submarine (SS)| 2-3-1942|Internal explosion and scuttled|
|[[KXVIII (1934)]]|Submarine (SS)| 2-3-1942|Depth charged and scuttled|
|Soerabaja = ex-[[De Zeven Provinciën (1910)]]|Coastal Battleship (CBB)| 18-2-1942|Bombed and scuttled|
|[[Pro Patria (1923)]]|Minelayer (ML)| 15-2-1942|Scuttled|
|[[Prins van Oranje (1932)]]|Minelayer (ML)| 11-1-1942|Naval gunfire from IJN destroyer Yamakaze and Patrol Boat P38|
|[[Gouden Leeuw (1932)]]|Minelayer (ML)| 7-3-1942|Scuttled|
|[[Krakatau (1924)]]|Minelayer (ML)| 8-3-1942|Scuttled in Soerabaja|
|[[Rigel (1931)]]|Minelayer (ML)| 2-3-1942|Scuttled as a blockship|
|[[A (1930)]]|Minesweeper (MS)| 1-3-1942|Bombed|
|[[B (1930)]]|Minesweeper (MS)| 1-3-1942|Bombed|
|[[C (1930)]]|Minesweeper (MS)| 6-3-1942|Scuttled|
|[[D (1930)]]|Minesweeper (MS)| 6-3-1942|Scuttled||
|[[Pieter de Bitter (1937)]]|Minesweeper (MS)| 6-3-1942|Scuttled|
|[[Eland Dubois (1937)]]|Minesweeper (MS)| 8-3-1942|Scuttled|
|[[Jan van Amstel (1937)]]|Minesweeper (MS)| 8-3-1942|Naval gunfire|
|[[Endeh (1941)]]|Minesweeper (MS)| 2-3-1942|Naval gunfire|
|[[Alor (1939)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Aroe (1939)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Bantam (1939)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Boeroe (1946)]]|Minesweeper (MS)<br>See: [[Onze vloot|https://onzevloot.weebly.com/hrms-boeroe.html]]| 2-3-1942|Scuttled|
|[[Bogor (1939)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Ceram (1939)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Cheribon (1939)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Djember (1941)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Djombang (1941)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Djampea (1941)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Enggano (1941)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Ardjoeno (1940)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Gedeh (1940)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Kawi (1940)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Lawoe (1940)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Salak (1940)]]|Minesweeper (MS)| 2-3-1942|Scuttled|
|[[Koning der Nederlanden (1877)]]|Hulk (ex-Turret Ship)| 2-3-1942|Scuttled|
|[[Serdang (1897)]]|Sloop| 6-3-1942|Scuttled|
|[[Albatros (1912)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 2-3-1942|Scuttled|
|[[Aldebaran (1913)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 2-3-1942|Scuttled|
|[[Bellatrix (1914)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 1-3-1942|Scuttled|
|[[Canopus (1915)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 5-3-1942|Bombed|
|[[Deneb (1915)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 4-2-1942|Bombed|
|[[Gemma (1918)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 2-3-1942|Scuttled|
|[[Eridanus (1918)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 2-3-1942|Scuttled|
|[[Sirius (1922)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 28-2-1942|Scuttled|
|[[Wega (1923)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 26-1-1942|Bombed|
|[[Fomalhaut (1923)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 2-3-1942|Scuttled|
|[[Merel (1928)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 2-3-1942|Scuttled|
|[[Arend (1929)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 1-3-1942|Scuttled|
|[[Valk (1929)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 2-3-1942|Scuttled|
|[[Fazant (1932)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 1-3-1942|Scuttled|
|[[Reiger (1931)]]|Patrol Vessel (Gouvernementsmarine patrol vessel)| 28-2-1942|Wrecked|
|[[Hoofdinspecteur Zeeman (1909)]]|Tender (Gouvernementsmarine patrol vessel)| 5-3-1942|Bombed|
|Tanakan |Surveying Vessel (Gouvernementsmarine patrol vessel)| ?|Bombed|
|[[Tydeman (1918)]]|Surveying Vessel (Gouvernementsmarine patrol vessel)| 4-3-1942|Bombed|
|[[Poolster (1939)]]|Tender (Gouvernementsmarine patrol vessel)| 1-3-1942|Scuttled|
|[[Willebrord Snellius (1929)]]|Surveying Vessel (Gouvernementsmarine patrol vessel)| 6-3-1942|Scuttled|
|[[Pollux (1922)]]|Tender (Gouvernementsmarine patrol vessel)| 2-3-1942|Scuttled|
|[[Pelikaan (1922)]]|Depot Ship (Gouvernementsmarine patrol vessel)| 3-1942|Unknown|
|No. 16 |Auxiliary Minesweeper (Aux. MS)| 2-3-1942|Scuttled|
|No. 17 |Auxiliary Minesweeper (Aux. MS)| 2-3-1942|Scuttled|
|Belang |Auxiliary Patrol Vessel| 3-1942|Bombed|
|Biaro |Auxiliary Patrol Vessel| 2-3-1942|Scuttled|
|Boenakan |Auxiliary Patrol Vessel| 1-3-1942|Scuttled|
|Bangkalan |Auxiliary Minelayer (Aux. ML)| 2-3-1942|Scuttled|
|Soemanep |Auxiliary Minelayer (Aux. ML)| 2-3-1942|Scuttled|
|Bangkalan |Auxiliary Minelayer (Aux. ML)| 2-3-1942|Scuttled|
|Kraus |Miscellaneous Auxiliary| 3-1942|Scuttled|
|Pief |Miscellaneous Auxiliary| 4-1942|Captured by IJN|
|Schouten (i) |Miscellaneous Auxiliary| 28-2-1942|Scuttled|
|Sloet van de Beele |Miscellaneous Auxiliary| 17-2-1942|Bombed|
|Van Waerwijck (3,040 tons) |Miscellaneous Auxiliary (ex-Passenger Ship)| 2-3-1942|Scuttled off Tandjong Priok, salved by IJN and renamed Harukiku Maru, sunk by torpedo from HMS submarine Truculent on June 26th, 1944 in Strait Malacca|
|Barentz |Miscellaneous Depot Ship| 5-3-1942|Bombed|
|Moera Boelian |Miscellaneous Depot Ship| 6-3-1942|Scuttled|
|Peta |Auxiliary Depot Ship| 6-3-1942|Scuttled|
|Roggeveen |Auxiliary Depot Ship| 1-3-1942|Scuttled|
|Op ten Noort |Auxiliary Hospital Ship| 28-2-1942|Captured by IJN DD's|
|TAN 1 |Auxiliary Tanker (ex-merchantile Paula)| 1-3-1942|Scuttled off Tandjong Priok. Salved by Japanese and put back in service as Arare Maru. Found sunk at Singapore at the end of the war. Ship was raised and returned to commercial ownership|
|TAN 2 |Auxiliary Tanker (ex-merchantile Juno)| 2-3-1942|Scuttled at Soerabaja. Salved by IJN as Yuno Maru. Later lost to mines south of Singapore on April 30th, 1945|
|TAN 3 |Auxiliary Tanker (ex-merchantile Djirak)| 2-3-1942|Sunk by naval gunfire from IJN submarine in the Bali Sea|
|TAN 4 |Auxiliary Tanker (ex-merchantile Pendopo)| 2-3-1942|Scuttled at Soerabaja. Salved by IJN as Eiho Maru. Later bombed and sunk by USN aircraft of the coast of Indo-China on January 12th, 1945|
|TAN 5 |Auxiliary Tanker (ex-merchantile Aldegonda)| 2-3-1942|Scuttled at Soerabaja. Salved by IJN as Akebono Maru. Recovered after the war and returned to commercial ownership|
|TAN 6 |Auxiliary Tanker (ex-merchantile Josefina)| 2-3-1942|Scuttled at Soerabaja. Salved by IJN as Yosei Maru. Later sunk by USN submarine in the Java Sea on May 13th, 1945|
|TAN 8 |Auxiliary Tanker (ex-merchantile Ambo)| 2-3-1942|Scuttled at Soerabaja. Salved by IJN as Teikai Maru. Later sunk by USN aircraft in the Philippines on December 30th, 1944|
|BEN 1 |Auxiliary Petrol Carrier (ex-merchantile Minjak)| 4-3-1942|Scuttled at Soerabaja|
|BEN 2 |Auxiliary Petrol Carrier (ex-merchantile Moesi)| 4-3-1942|Sunk by naval gunfire from IJN destroyers (DD) in the Bali Strait|
|BEN 3 |Auxiliary Petrol Carrier (ex-merchantile Asahan)| 6-3-1942|Scuttled at Tjilatjap. Recovered after the war and returned to commercial ownership|
|BEN 4 |Auxiliary Petrol Carrier (ex-merchantile Mampawa)| 6-3-1942|Fired and scuttled at Tjilatjap. Salved by the IJN as the Harufuji Maru. Recovered after the war and returned to commercial ownership|
Na de oorlog zijn 3 <<popup Victory-schepen Victory-schepen>> (''Zuiderkruis'', ''Grote Beer'' en ''Waterman'') door de Nederlandse Staat aangekocht om als troepentransportschepen en later als passagiersschepen voor emigrantenvervoer te dienen.<br><br>
''Victory''-schepen waren vrachtschepen die gedurende WWII werden gebouwd in de USA volgens een standaardontwerp. Zij waren een grote verbetering ten opzichte van het voorgaande <<popup Liberty-ontwerp Liberty-schepen>>, dat in veel grotere aantallen werd gebouwd. Zij hadden een hogere snelheid, circa 15 tot 17 knopen tegen 11 knopen voor de Liberty, een groter bereik en waren steviger.<br>
Het eerste schip liepin januari 1944 van stapel. In totaal werden er 534 gebouwd.
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Vidar 1940" Schepen386>>
In 1915 omgebouwd to mijnenlegger.
[[youtube|https://www.youtube.com/watch?v=NqYwqVqwDQQ]]
<iframe width="600" height="400" src="https://www.youtube.com/embed/NqYwqVqwDQQ" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe><br>
//Flying Tankers original documentary Martin Mars.//
[[youtube|https://www.youtube.com/watch?v=rNWB8AG19zA]]
<iframe width="600" height="400" src="https://www.youtube.com/embed/rNWB8AG19zA" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe><br>
Hughes H-4 Hercules.
[[youtube|https://www.youtube.com/watch?v=Y22F9O3A0EM]]
<iframe width="600" height="400" src="https://www.youtube.com/embed/Y22F9O3A0EM" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe><br>
//Martin JRM Mars, Saunders-Roe Princess, Hughes H-4 Herculus.//
<iframe width="600" height="400" src="https://www.youtube.com/embed/QSCiXVRrzUs" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe><br>
Catalina PH-PBY Splash & Go impressie
<iframe src="https://player.vimeo.com/video/105116219" width="640" height="533" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
<p><a href="https://vimeo.com/105116219">Savoia-Marchetti S.55</a> from <a href="https://vimeo.com/user9024784">pro-samolet.ru</a> on <a href="https://vimeo.com">Vimeo</a>.</p>
<!-- Commentaar: standaard YouTube 425 x 349 wijzigen in 600 x 500 -->
<iframe width="640" height="500" src="https://www.youtube.com/embed/q8eWMQkES5w?wmode=opaque" frameborder="0"></iframe><br>
//Catalina PH-PBY (16-218) bij 'Seaplane Meeting Lucerne 2013'.//
<!-- Commentaar: standaard YouTube 425 x 349 wijzigen in 600 x 500 -->
<iframe width="600" height="500" src="https://www.youtube.com/embed/krGUe2e7H1o" frameborder="0" allowfullscreen></iframe><br>
//15-8-2017 ... Rond twee uur gaf de piloot aan de verkeerstoren door dat er een probleem was met het landingsgestel. Het neuswiel wilde niet uitklappen.....//
<iframe src="https://upload.wikimedia.org/wikipedia/commons/a/a6/Aankomst_van_de_vliegboot_DO_X-521113.ogv" frameborder="0" width="600"; height="500"></iframe><br>
//Aankomst Dornier Do-X te Amsterdam (1930).//
<!-- Commentaar: standaard YouTube 425 x 349 wijzigen in 600 x 500 -->
<iframe width="600" height="500" src="https://www.youtube.com/embed/dwPRGFN-TVA" frameborder="0" allowfullscreen></iframe><br>
//Rondreis Dornier Do-X (1930-1932).//
<!-- Commentaar: standaard YouTube 425 x 349 wijzigen in 600 x 500 -->
<iframe width="600" height="500" src="https://www.youtube.com/embed/Io56spqwxJ4" frameborder="0" allowfullscreen></iframe><br>
//Dornier Do-24K.//
<!-- Commentaar: standaard YouTube 425 x 349 wijzigen in 600 x 500 -->
<iframe width="560" height="400" src="https://www.youtube.com/embed/628ZPF_0WkY" frameborder="0" allowfullscreen></iframe><br>
//De nieuwste Dornier (Seastar).//
<!-- Commentaar: standaard YouTube 425 x 349 wijzigen in 600 x 500 -->
<iframe width="600" height="500" src="https://www.youtube.com/embed/I4JoyWOwHr0" frameborder="0" allowfullscreen></iframe><br>
//Aankomst 6x Dornier Wal te Morokrembangan.//
<!-- Commentaar: standaard YouTube 425 x 349 wijzigen in 600 x 500 -->
<div xmlns:dct="https://purl.org/dc/terms/" xmlns:cc="https://creativecommons.org/ns#" class="oip_media" about="https://www.openbeelden.nl/files/17/17402.17390.WEEKNUMMER550-HRE0001DB59.mp4"><video height="288" width="512" poster="https://www.openbeelden.nl/images/597641/WEEKNUMMER550-HRE0001DB59.png" controls="controls"><source type="video/mp4" src="https://www.openbeelden.nl/files/17/17402.17390.WEEKNUMMER550-HRE0001DB59.mp4"/><source type="video/ogg; codecs=theora" src="https://www.openbeelden.nl/files/17/17396.17390.WEEKNUMMER550-HRE0001DB59.ogv"/><source type="application/x-mpegurl" src="https://www.openbeelden.nl/files/17/36800.17390.WEEKNUMMER550-HRE0001DB59.m3u8"/></video><span class="license"><a href="https://www.openbeelden.nl/media/17389" rel="cc:attributionURL" property="dct:title"><br>News from New Guinea: the Naval Aviation Service</a>, by <a href="https://www.openbeelden.nl/users/beeldengeluid" rel="dct:creator" property="cc:attributionName">Polygoon-Profilti (producer) / Netherlands Institute for Sound and Vision (curator)</a>, is licensed under <a href="https://creativecommons.org/licenses/by-sa/3.0/" rel="license">Creative Commons – Attribution-Share Alike</a>.</span></div>
<iframe width="650" height="365" src="https://www.youtube.com/embed/mjZ0VTDZJ_Q" frameborder="0" allowfullscreen></iframe>
<iframe src="https://anderetijden.nl/aflevering/244/De-laatste-walvisvaarders" frameborder="0" width="100%" height="600"></iframe>
<iframe width="600" height="500" src="https://www.youtube.com/embed/wb_PdTTWyA4" frameborder="0" allowfullscreen></iframe>
<iframe width="600" height="500" src="https://www.youtube.com/embed/4l-CjiitQzs" frameborder="0" allowfullscreen></iframe>
<iframe width="600" height="500" src="https://www.youtube.com/embed/NbUwKulNzUo" frameborder="0" allowfullscreen></iframe>
ex IJM183, Eendracht, Surf Flower (1927).<br>De wat grotere trawler werd in 1940 in Engeland gevorderd en omgebouwd tot hulpmijnenveger. Nam deel aan mijnenveegoperaties in Britse wateren. in Britse wateren. In de nacht van 24 op 25 december 1943 kwam het schip in gevecht met Duitse torpedomotorboten (MTB's) maar raakte niet beschadigd. In augustus 1944 werd de aangepaste vissersboot uit dienst gesteld en na terugkeer in Nederland, in 1945, werd het gebruikt om overtollige munitie in zee te dumpen. Daarna was het schip nog ingedeeld bij de mijnendienst in IJmuiden totdat het op 1 augustus 1946 teruggeven werd aan de eigenaar.
{{||$:/_ship_template}}
* <<slider "Mijnenjager Vlaardingen 2008" Schepen321>>
!! Vlaggebruik Koninklijke Marine
Hieronder de gebruikte vlaggen met een korte aanduiding. Voor de volledige informatie zie [[Vlaggebruik Koninklijke Marine|https://puc.overheid.nl/doc/PUC_41859_10/1/#691c4232-74b8-49c5-af7b-984ecc4348a4]].
!! Koninkrijksvlag
Oorlogsschepen in dienst voeren de koninkrijksvlag aan de vlaggenstok.
{{Koninkrijksvlag}}
//Koninkrijksvlag//
!! Oorlogswimpel
Oorlogsschepen voeren, zolang zij in dienst zijn, de oorlogswimpel.
[img width=300 [Images/Oorlogswimpel.png]]<br>//Oorlogswimpel//
!! Geus
De geus wordt uitsluitend door oorlogsschepen in dienst gevoerd en wel aan de geusstok.<br>
Eigenlijk moeten we spreken over de 'Dubbele geus' toegekend bij Koninklijk Besluit van 20 april 1931.
{{Dubbele Geus}}
//Geus//
<<<
{{Enkele Geus}}<br>
//Geusje//
''N.B.:'' De koopvaardij, binnenvaart en pleziervaart voert de zogeheten 'Enkele Geus' oftewel 'Het Geusje'.
<<<
!! Onderscheidingsvlag van een lid van het Koninklijk Huis
Zij blijft dag en nacht waaien, zolang Z.M. de Koning aan boord van het schip of de sloep is.
{{Koninklijke standaard WA}}
//Onderscheidingsvlag/koninklijke standaard Z.M. Koning Willem Alexander//
[[flagchart|http://www.flagchart.net/nlmilkm.htm]]
<iframe src='http://www.flagchart.net/nlmilkm.htm' frameborder="0" width="1024"; height="600"></iframe>
!!! Vliegdekschip
Een vliegkampschip of vliegdekschip is een vaartuig dat is ingericht voor het vervoer, onderhoud en gebruik van vliegtuigen.
<<<
''N.B.:'' Voor marinemensen is het een ''vliegkampschip'', een varend ''vliegkamp''
<<<
<<w>>
!! Vliegkampen
De opstelling van de marinevliegkampen, een bij Amsterdam, twee rondom het Marsdiep 'De Mok' en 'De Kooy' en twee in de nabijheid van de Schelde, namelijk te Vlissingen en te Veere, bewijst dat de marineleiding in de jaren tijdens de Eerste Wereldoorlog 1914/1918 een vooruitziende blik hadden.
<<tabs "
[[Marinevliegkamp & luchthaven Schellingwoude]]
[[Marinevliegkamp De Mok]]
[[Marinevliegkamp De Kooy]]
[[Marinevliegkamp Souburg]]
[[Marinevliegkamp Veere]]
" "">>
<<imageh 19xx_Consolidated_PBY-5A_Catalina.jpg 400>>
//Militair Luchtvaartmuseum Soesterberg met vliegboot [[Consolidated PBY-5A Catalina|Consolidated PBY-5A]] (16-212), ca. 2005.<br>
Tussen 1941 en 1958 waren vliegboten van dit type bij de Nederlandse Marine Luchtvaartdienst in gebruik.//
<<imageh 1946_Walvisvaarder_Willem_Barendsz_Ben_van_Meerendonk.jpg 400>>
//Walvisvaarder Willem Barendsz twee dagen voor het eerste vertrek. Ben van Meerendonk, 24 oktober 1946.<br>
Het vliegtuigje op het achterdek was een [[Supermarine Walrus]] - bedoeld als 'walvisverkenner' - maar heeft nooit als zodanig gevlogen.//
<<imageh 1954-1957_Nieuw-Guinea_Consolidated_PBY-5A_Catalina.jpg 400>>
//Biak, Nieuw-Guinea, [[Consolidated PBY-5A Catalina|Consolidated PBY-5A]] (16-214), ca. 1954.//
<<imageh Catalina_Aviodrome.jpg 400>>
//Aviodrome, [[Consolidated PBY-5A Catalina|Consolidated PBY-5A]] (16-218), ca. 2015.//
<<imageh 1938_ca_Fokker_C-11W_Tromp_boordvliegtuig.jpg 400>>
//[[Fokker C.XIw]] (W-6), <<popup boordvliegtuig Boordvliegtuig>> van de kruiser Tromp, ca. 1938.//
<<imageh 1938_ca_Fokker_C.XI_De_Ruyter.jpg 400>>
//[[Fokker C.XIw]], <<popup boordvliegtuig Boordvliegtuig>> van de kruiser De Ruyter, ca. 1938.//
<<imageh 1942_ca_Fokker_T.VIIIw.jpg 400>>
//Een [[Fokker T.VIIIw]] in dienst bij het 320 Dutch Squadron RAF, ca. 1940.<br>
Let op het <<popup landsymbool Roundels>> voor.//
<<imageh 1929_Van_Berkel_W-A_Hr_Ms_Java.jpg 400>>
//Een [[Van Berkel W-A]] watervliegtuig (W9) wordt vanaf de lichte kruiser Java in het water getakeld in de wateren van Nederlands-Indië, 1929.//
<<imageh 1931-1942_Dornier_Wal_F_reg_D41.jpg 400>>
//[[Dornier Do J IIf Wal]] (D41), ca. 1936.<br>
Marinevliegkamp De Mok, Texel.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/59ca4b6f-96bf-57b9-dfe1-f5ee708834f7/media/6a5ac93e-7572-f5f9-e3ee-d404a51a03b1?mode=detail&view=horizontal&q=Dornier%20wal&rows=1&page=92&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1937_Fokker_C.XI_W_op_De_Ruyter_klein_onderhoud.jpg 400>>
//[[Fokker C.XIw]] (W-1), <<popup boordvliegtuig Boordvliegtuig>> van de kruiser De Ruyter, 1937.<br>
Dagelijks onderhoud aan de C XI, gedaan aan boord van de kruiser.<br>
De W-1 is met stroppen verankerd aan de katapult.<br>
Voor periodiek groter onderhoud moest de hangar worden bezocht.//
<<imageh 1937_Fokker_C.XI_W_W1_terug_aan_boord_per_kraan.jpg 400>>
//[[Fokker C.XIw]] (W-1), <<popup boordvliegtuig Boordvliegtuig>> van de kruiser De Ruyter wordt aan boord getakeld, 1937.//
<<imageh 1938_Fokker_C.XIw_c3.jpg 400>>
//[[Fokker C.XIw]] (W-1), 1938.<br>
Het arriveren bij de 'scheeps' helling. De W 1 is hier langszij de lorrie tot stilstand gekomen en wordt naar de kant begeleid.<br>
{{VM}}//
<<imageh 1938_Fokker_C.XIw_c4.jpg 400>>
//[[Fokker C.XIw]] (W-1), 1938.<br>
De W 1 wordt opgelijnd met de met leer beklede drijversteunen op de trolley.<br>
{{VM}}<br>
N.B. Zo'n Fokker had een gewicht van ca. 2 ton!.//
<<imageh 1938_Fokker_C.XIw_c5.jpg 400>>
//[[Fokker C.XIw]] (W-1), 1938.<br>
{{VM}}<br>
De W 1 is totaal in handen van de lokale rangeerploeg.//
<<imageh 1938_Fokker_C.XIw_c6.jpg 400>>
//[[Fokker C.XIw]] (W-1), 1938.
{{VM}}<br>
De voorlopige eindpositie op de helling is bereikt, tijd voor een groepsfoto van de grondploeg.//
<<imageh 1938_Fokker_C.XIw_c7.jpg 400>>
//[[Fokker C.XIw]] (W-1), 1938.
{{VM}}<br>
De voorlopige eindpositie op de helling is bereikt, tijd voor een groepsfoto van de grondploeg.//
<<imageh 1937_Fokker_T-IVa_De_zeventien.jpg 400>>
//[[Fokker T.IVa]] (T-17) torpedobommenwerper, 1937.<br>
{{VM}}//
<<imageh 1946_Supermarine_Walrus_I.jpg 400>>
//[[Supermarine Walrus]] I, (PH-NAX), aan boord van de Willem Barendsz bij Kaapstad, 1946.<br>
Vanwege een tragisch ongeluk met de PH-NAW (de andere 'Walrus' aan boord) hangt de vlag halfstok.//
<<imageh 1947_Supermarine_Walrus_I_PH-NAX.jpg 400>>
//[[Supermarine Walrus]] I (PH-NAX), 1947.//
<<imageh 1937_Dornier_Wal_Trolley_en_Boot_vormen_eenheid.jpg 400>>
//Een [[Dornier Wal|Dornier Do J I Wal]] wordt uit het water 'gepiekeld', 1937.<br>
N.B. Zo'n Dornier had een gewicht van ca. 5 ton!<br>
{{VM}}//
<<imageh 1937_Fokker_T.IV_op_de_rails.jpg 400>>
//Een [[Fokker T.IV|Fokker T.IV]] op de rails, 1937.<br>
{{VM}}//
<<imageh 2015_ca_Consolidated_PBY-5A_Catalina.jpg 400>>
//[[Consolidated PBY-5A Catalina|Consolidated PBY-5A]] (16-218), ca. 2015.//
<<imageh 2017_Dornier_Seastar_CD2.jpg 400>>
//[[Dornier Seastar CD2]] (D-ISEA), 2017.<br>
Het lijkt wel een reïncarnatie van de fameuze Dornier 'Wal'.<br>
Voor meer informatie zie:// https://www.dornierseawings.com//
<<imageh 1937_Dornier_Wal_D1_op_rails.jpg 400>>
//De [[Dornier Wal|Dornier Do J I Wal]] (D1) op rails, 1937.<br>
{{VM}}//
<<imageh 19xx_Dornier_Do-X.jpg 400>>
//[[Dornier Do X]] (D-1929) , ca. 1930.//
<<imageh 1929_ca_Volendam_Dornier_Wal.jpg 400>>
//[[Dornier Wal|Dornier Do J I Wal]] (D21) boven Volendam, ca. 1929.//
<<imageh 1939_Dornier_Do24K_in_flight.jpg 400>>
//[[Dornier Do 24K|Dornier Do 24K-1]] (X-1), 1939.//
<<imageh 1939_ca_Dornier_Do24K.jpg 400>>
//[[Dornier Do 24K|Dornier Do 24K-1]] (X-1), ca. 1939.//
<<imageh 1940_ca_Fokker_T.VIIIw_vliegend_boven_UK.jpg 350>>
//Een [[Fokker T.VIIIw]] vliegend boven Engeland, ca. 1940.//
<<imageh 19xx_3x_Dornier_Wal.jpg 400>>
//Drie maal [[Dornier Wal|Dornier Do J I Wal]], klaar om op te stijgen, ca. 1935.//
<<imageh 19xx_7x_Dornier_Wal_op_zee.jpg 400>>
//Zeven (of meer?) maal [[Dornier Wal|Dornier Do J I Wal]] op zee, ca 1935.//
<<imageh 1926_Fokker_CVw_demonstratie_450_pk_Liberty-motor.jpg 400>>
//[[Fokker C.V]] drijvervliegtuig zonder registratie (demonstratietoestel met een 450 pk Liberty-motor), 1926.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/169?q_searchfield=Fokker+C.V]]//
<<imageh 19xx_MVK_De_Mok_C.VIIw-V11_C.VIIIw.jpg 400>>
//Vliegkamp De Mok, Texel, met een [[Fokker C.VIIIw]] (links) en een [[Fokker C.VIIw]] (V-11), ca. 1930.
//
<<imageh 1931_ca_Luchthaven_Schellingwoude_Dornier_1761.jpg 400>>
//Luchthaven Schellingwoude met [[Dornier Do R4 Superwal]] (D-1761), 'Rügen', 1931.//
<<imageh 1931_Luchthaven_Schellingwoude_Dornier_Do-R4_Superwal.jpg 400>>
//Luchthaven Schellingwoude, [[Dornier Do R4 Superwal]] (D-1782), 'Usedom', 1931.//
<<imageh 1928_Aankomst_Italiaanse_vliegboot.jpg 400>>
//Luchthaven Schellingwoude, aankomst van de Italiaanse vliegboot [[Savoia-Marchetti S.55X]], een catamaran vliegboot, 1928.//
<<imageh 1929_Demonstratievlucht_Zweeds_watervliegtuig.jpg 400>>
//Luchthaven Schellingwoude, demonstratievlucht van een Zweeds watervliegtuig, 1929.<br>
De S-505 was een door het Zweeds AB Flygindustri gebouwde Junkers K.30.<br>
De S-AABB was een door het Zweeds AB Flygindustri gebouwde Junkers R.53.<br>
Verder ligt er nog een [[Van Berkel W-A]] watervliegtuig (W54).//
<<imageh 1930_Aankomst_postvliegtuig_uit_Bremen.jpg 400>>
//Luchthaven Schellingwoude, aankomst van het postvliegtuig uit Bremen, 1930.<br>
De D-1717 'New York' was een [[Heinkel He 12]].//
<<imageh 1927_Slechte_landing_Heinkel.jpg 400>>
//Luchthaven Schellingwoude, een niet geheel perfecte landing van een [[Heinkel He 10]] (D-1731) op de Durgerdammerdijk, 1929.//
<<imageh 1930_Dornier_Do_X_Pampus.jpg 400>>
//Luchthaven Schellingwoude, [[Dornier Do X]] (D-1929) klaar om op te stijgen, 1930.<br>
Op de achtergrond het eiland Pampus.//
<<imageh 1930_Dornier_Do_X_op_bezoek.jpg 400>>
//Luchthaven Schellingwoude, [[Dornier Do X]] (D-1929) op bezoek, 1930.//
<<imageh 1936_MVK_Schellingwoude_Lets_bezoek.jpg 400>>
//Luchthaven Schellingwoude, bezoek van drie Letse Fairey-Seal vliegtuigen, 1936.<br>
Let op de door Letland gebruikte <<popup swastika Roundels>>.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/79?q_searchfield=Fairey]]//
<<imageh 1930_Dornier_Do-X_bezoek_Schellingwoude.jpg 400>>
//Luchthaven Schellingwoude, [[Dornier Do X]] (D-1929) op bezoek, 1930.//
<<imageh 1921_Schellingwoude_prins_Hendrik_rondvlucht.jpg 400>>
//Luchthaven Schellingwoude, ZKH Prins Hendrik maakt een rondvlucht boven Amsterdam in een [[Van Berkel W-A]] tweedekker (W57), 1921.//
<<imageh 1933_Schellingwoude_Italiaanse_maarschalk_Balbo.jpg 400>>
//Luchthaven Schellingwoude, de Italiaanse maarschalk <<popup Balbo Balbo>> (rechts) - onderweg naar Chicago met 24 vliegboten van het type [[Savoia-Marchetti S.55X]] - maakt een tussenlanding op de luchthaven Schellingwoude, 1933.//
<<imageh 1940_Vlieghaven_Schellingwoude_4_vliegboten.jpg 400>>
//Vliegkamp Schellingwoude, najaar 1940.<br>
3 [[Dornier Do 18]] vliegboten en een Heinkel He 115 vliegboot.//
<<imageh 1941_ca_Heinkel_HE-59.jpg 400>>
//Vliegkamp Schellingwoude met [[Heinkel He 59|Heinkel He 59B]], reddings-, maar ook verkenningsvliegtuig, ca. 1941.<br>
Hier niet meer in 'Rode Kruis vermomming'.//
<<imageh 1940_Heinkel_HE-59_reddingsvliegtuigen_boven_het_Kanaal.jpg 400>>
//[[Heinkel He 59|Heinkel He 59B]] reddingsvliegtuigen - wit en voorzien van het Rode Kruis embleem - boven het Kanaal, 1940.<br>
Daar deze vliegtuigen echter ook als verkenningsvliegtuig gebruikt werden, werden ze vanaf juli 1940 aangevallen door de Britten. Hierna verdween de 'vermomming'.//
<<imageh 1940-1945_Onderhoud_aan_een_Heinkel_He-59_reddingsvliegtuig.jpg 400>>
//Vliegkamp Schellingwoude, onderhoud aan een [[Heinkel He 59|Heinkel He 59B]] reddingsvliegtuig, ca. 1941.//
<<imageh 1940-1945_Heinkel_He-59_taxiet_weg.jpg 400>>
//Vliegkamp Schellingwoude, een [[Heinkel He 59|Heinkel He 59B]], reddingsvliegtuig, taxiet weg, ca. 1941.//
<<imageh 1940-1945_Een_Dornier_Do_18_vliegboot.jpg 400>>
//Vliegkamp Schellingwoude, een [[Dornier Do 18]] vliegboot wordt naar de aanlegsteiger gesleept, ca. 1940.//
<<imageh 1944_Een_Arado_Ar_196_verkenningsvliegtuig.jpg 400>>
//Luchthaven Schellingwoude, een [[Arado Ar 196]] verkenningsvliegtuig wordt klaar gemaakt, 1944.//
<<imageh 1940-1945_Heinkel_He_59_op_slipwagen.jpg 400>>
//Vliegkamp Schellingwoude, [[Heinkel He 59|Heinkel He 59B]], reddingsvliegtuig, op slipwagen, ca. 1941.//
<<imageh 19xx_Consolidated_PBY-5.jpg 400>>
//Een Amerikaanse [[Consolidated PBY-5 Catalina|Consolidated PBY-5]] 'pure' vliegboot, ca. 1940.<br>
De latere PBY-5A 'amfibische' versie bezat een intrekbaar landingsgestel.//
<<imageh 1942-1957_Consolidated_PBY-5_Catalina_vliegboot.jpg 400>>
//[[Consolidated PBY-5A Catalina|Consolidated PBY-5A]] vliegboot (16-215), Ca. 1953.//
<<imageh 1925_De_Mok_3x_Van_Berkel_W-A.jpg 400>>
//Texel, vliegkamp 'De Mok' met drie [[Van Berkel W-A]] watervliegtuigen, 1925.//
<<imageh 1933_ca_Savoia_Marchetti_S_55-X.jpg 400>>
//[[Savoia-Marchetti S.55X]], ca. 1933.//
<<imageh 1929_Heinkel_He_10_D-1731.jpg 400>>
//[[Heinkel He 10]] (D-1731) in betere tijden, 1929.//
<<imageh 1931_Heinkel_He-12_Dampfer_Bremen_Bordflugzeug_New_York.jpg 400>>
//[[Heinkel He 12]] 'New York' aan boord van de stoomboot 'Bremen', 1931.<br>
De 'New York' gepositioneerd op een katapult.//
<<imageh 1928_Amstel_Van_Berkel_W-A_watervliegtuig.jpg 400>>
//Amsterdam, een [[Van Berkel W-A]] watervliegtuig (W53) van de Marine Luchtvaart Dienst (MLD) in de Amstel, 1928.<br>
Merk op: er hangt een anker aan de zijkant.//
<<imageh 1913_IJ_1e_watervliegtuig_Aero-Hydroplan_Pierre_Levasseur_1.jpg 400>>
//Landing van het eerste watervliegtuig (aero-hydroplan) in het IJ, bestuurd door de Franse vliegtuigbouwer Pierre Levasseur, 1913. Merk op: 3 drijvers.<br>
Op de achtergrond het terrein van de Eerste Nederlandse Tentoonstelling Op Scheepvaartgebied (ENTOS) aan de Buiksloterweg.//
<<imageh 1913_IJ_1e_watervliegtuig_Aero-Hydroplan_Pierre_Levasseur_2.jpg 400>>
//Landing van het eerste watervliegtuig (aero-hydroplan) in het IJ, bestuurd door de Franse vliegtuigbouwer Pierre Levasseur, 1913. Merk op: 3 drijvers.<br>
Een boot van de havenpolitie versleept het vliegvaartuig naar het Oosterdok.//
<<imageh 1929_ca_MLD_C.VIIIw.jpg 400>>
//[[Fokker C.VIIIw]], ca. 1929.//
<<imageh Fokker_C.VIIIw_stijgt_op.jpg 400>>
//[[Fokker C.VIIIw]] stijgt op, ca. 1929.//
<<imageh 1940_Aviolanda_Do-24_X-35-36-37.jpg 400>>
//De laatste [[Do 24K-1's|Dornier Do 24K-1]] X-35 & X-36) gebouwd bij Aviolanda staan klaar om afgeleverd te worden, april 1940.<br>
Rechts de eerste (en laatste) [[Do 24K-2|Dornier Do 24K-2]] (X-37) gebouwd door Dornier.//
<<imageh 1922_Fokker_B.I.jpg 400>>
//[[Fokker B.I]] amfibische vliegboot, 1922.<br>Slechts één heeft er dienst gedaan in Oost-Indië.//
<<imageh Fokker_C.XIVw_1.jpg 400>>
//[[Fokker C.XIVw]] (F-1), 1939.//
<<imageh 1922_Fokker_B.I_2.jpg 400>>
//[[Fokker B.I]] amfibische vliegboot, 1922.<br>Slechts één heeft er dienst gedaan in Oost-Indië.<br>
Let op het opgetrokken landingsgestel.//
<<imageh 1922_Fokker_B.I_3.jpg 400>>
//[[Fokker B.I]] amfibische vliegboot, 1922.<br>Slechts één heeft er dienst gedaan in Oost-Indië.//
<<imageh 1937_Fokker_C.VIIw.jpg 400>>
//[[Fokker C.VIIw]] (V-5), 1937.<br>
{{VM}}//
<<imageh 1927_Fokker_T.IV_prototype.jpg 400>>
//Prototype [[Fokker T.IV]], 1927.//
<<imageh 1950_Supermarine_Sea_Otter_18-5.jpg 400>>
//Air Sea Rescue-amfibievliegtuig [[Supermarine Sea Otter Mk.2]] (18-5), 1950.//
<<imageh 1957_ca_Martin_mariner_16-306.jpg 400>>
//[[Martin PBM-5A Mariner]] (16-306), ca. 1957//
<<imageh 1950_Supermarine_Sea_Otter_Mk_II_18-5.jpg 400>>
//Air Sea Rescue-amfibievliegtuig [[Supermarine Sea Otter Mk.2]] (18-5), 1950.//
<<imageh 1953_watersnoodramp_Sea_Otter.jpg 400>>
//[[Supermarine Sea Otter Mk.2]], hulp nij watersnoodramp 1953.//
<<imageh Serie_MLD_Martin_Mariner.jpg 400>>
//Serie [[Martin PBM-5A Mariner]]'s (16-300 t/m 16-303), ca. 1957.//
<<imageh 1956_Manokwari_Martin_Mariner.jpg 400>>
//Manokwari, Nederlands Nieuw-Guinea, [[Martin PBM-5A Mariner]] (16-302), 1956.//
<<imageh 19xx_Spyker_V2.jpg 400>>
//[[Spyker V.2]] lesvliegtuig, ca. 1922.//
<<imageh 1922_ca_Spyker-V2-2.jpg 400>>
//[[Spyker V.2]] lesvliegtuig, ca. 1922.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/14?q_searchfield=spijker]]//
<<imageh 1947_Hughes_H4.jpg 400>>
//[[Hughes H-4 Herculus]] vliegboot tijdens zijn eerste en enige (test)vlucht. Long Beach, Californië, 1947.//
<<imageh 1947_Long_Beach_Hughes_H-4_Herculus.jpg 400>>
//[[Hughes H-4 Herculus]] vliegboot in de haven van Long Beach, Californië, 1947.//
<<imageh 1944_ca_Kawanishi_H8K2.jpg 400>>
//Japanse [[Kawanishi H8K2]] vliegboot (geallieerde codenaam: Emily), ca. 1944.<br>
Foto 'Digitally colorized'.//
<<imageh 19xx_Short_S_25_Sunderland_Mk_V.jpg 400>>
//Twee [[Short S.25 Sunderland Mk V|Short S.25 Sunderland Mk III]]'s, ca. 1944.//
<<imageh 1940_San_Diego_Ryan-S11-floatplane.jpg 400>>
//San Diego, [[Ryan STM-2S]], 1940.//
<<imageh MLD_Ryan_STM2_trainer.jpg 400>>
//3x [[Ryan STM-2S]], S-14, S-18 & S-21, ca. 1941.//
<<imageh Ryan-800x500.jpg 400>>
//[[Ryan STM-2S]] (S-16), ca. 2012.<br>MLD -> RAAF -> Hongkong -> Noorwegen -> USA -> Nederland (stichting Koninklijke Luchtmacht Historische Vlucht).//
<<imageh 1942_Australie_Ryan_STM-2.jpg 400>>
//Een MLD [[Ryan STM-2S]] op een RAAF basis, 1942.//
<<imageh 1915_ca_Soesterberg_Farman_HF_22_LA-6_in_fabriek.jpg 400>>
//Soesterberg met lesvliegtuig [[Farman HF.22]] (LA-6 van de LVA, geen watervliegtuig), 1914.//
<<imageh 1940_ca_Fokker_T_VIIIw_RAF.jpg 400>>
//Een [[Fokker T.VIIIw]] vliegend boven Engeland, ca. 1940.//
<<imageh 1939_Fokker_C_XIVw_F-1.jpg 400>>
//[[Fokker C.XIVw]] (F-1), 1939.//
<<imageh 1921-1933_De_Mok_Van_Berkel.jpg 400>>
//Vliegkamp De Mok, een [[Van Berkel W-A]] wordt het land opgetrokken, 1925.//
<<imageh 1921-1933_De_Mok_Van_Berkel_2.jpg 400>>
//Vliegkamp De Mok, een [[Van Berkel W-A]] wordt het land opgetrokken, 1925.//
<<imageh 1915_ca_Farman_HF-22_MA-1.jpg 400>>
//Soesterberg met MLD [[Farman HF.22]] (MA1, geen watervliegtuig), ca. 1915.//
<<imageh 1915_ca_Farman_F_22_LA11.jpg 400>>
//Soesterberg met lesvliegtuig [[Farman HF.22]] (LA11 van de LVA, geen watervliegtuig), ca. 1915.//
<<imageh 1918_ca_Martin_Model_S.jpg 400>>
//[[Martin S]] watervliegtuig, ca. 1918//
<<imageh 1930_ca_De_Kooy_Fokker_C_V_C.jpg 400>>
//Marinevliegkamp De Kooy met MLD Fokker C.Vc (Z8), ca. 1930.//
<<imageh 1928_ca__De_Kooy_MLD_Fokker_D_VIIF_D36.jpg 400>>
//Marinevliegkamp De Kooy met MLD [[Fokker D.VIIF|Fokker D.VII]] (D36), ca. 1928.//
<<imageh 1940_MVK_Veere_Fokker_C.XIVw_F21.jpg 400>>
//MVK Veere met [[Fokker C.XIVw]] (F21), 1940.//
<<imageh 1936_ca_Savoia_Marchetti_S66.jpg 400>>
//Een [[Savoia-Marchetti S.66]] stijgt op, ca. 1936.//
<<imageh 1938_ca_Koolhoven_FK_51_402.jpg 400>>
//Lesvliegtuig [[Koolhoven F.K. 51]] (402), ca. 1938.//
<<imageh 1939_ca_Koolhoven_FK51_23.jpg 400>>
//Een aantal [[Koolhoven F.K. 51]] lesvliegtuigen, ca. 1939.//
<<imageh 1915-1916_Farman_HF22_M2_Karel_Doorman_2.jpg 400>>
//Soesterberg, MLD [[Farman HF.22]] (M2) met <<popup "Karel Doorman" "Karel Doorman_info">> achter de stuurknuppel, 1916.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/4cd675fc-c14d-cf60-869b-22d72688315c/media/d97c455a-332d-85f7-f6d2-6f2f614de9bb?mode=detail&view=horizontal&q=farman%20doorman&rows=1&page=4&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 2006_Mars_Water_Bomber.jpg 400>>
//[[Martin JRM-3 Mars]] blusvliegtuig (Hawaii Mars) op het Sproatmeer (British Columbia, Canad), 2006.//
<<imageh 1949_Martin_JRM-2_Mars_Caroline_Mars.jpg 400>>
//US Navy [[Martin JRM-2 Mars|Martin JRM-3 Mars]] transportvliegtuig (Caroline Mars), 1949.//
<<imageh 2015_Martin_JRM-3_Mars.jpg 400>>
//Uit dienst genomen [[Martin JRM-3 Mars]] blusvliegtuig (Philippine Mars) weer in US Navy kleuren, 2015.<br>
Klaar voor het museum.//
<<imageh 1953_ca_Saunders-Roe_SR45_Princess.jpg 400>>
//[[Saunders-Roe SR.45 Princess]], ca. 1953.//
<<imageh 1952_ca_Princess.jpg 400>>
//[[Saunders-Roe SR.45 Princess]], ca. 1952.//
<<imageh 1939_Boeing_314_Yankee_Clipper.jpg 400>>
//De ~PanAm [[Boeing 314 Clipper]] Yankee Clipper, 1939.//
<<imageh 1940-1945_BOAC_Boeing_314A_Clipper_on_Lagos_Lagoon.jpg 400>>
//De BOAC [[Boeing 314 Clipper]] opstijgend in de Lagos lagune, ca. 1942.//
<<imageh Dornier_Do24_MLD_cockpit.jpg 400>>
//De cockpit van een [[Dornier Do 24K-1]], ca. 1938.//
<<imageh Dornier_Do24_MLD_plaats_boordwerktuigkundige.jpg 400>>
//[[Dornier Do 24K-1]], de werkplek van een boordwerktuigkundige, ca. 1938.//
<<imageh 1928_Fokker_T_IV_cockpit.jpg 400>>
//De cockpit van een [[Fokker T.IV]], 1928.//
<<imageh 1935_ca_start_Fokker_C_VIIIW.jpg 400>>
//Start van een escadrille [[Fokker C.VIIIw]] marinevliegtuigen, ca. 1935//
<<imageh 1917-1919_De_Mok_De_Martin_S_J-1_3.jpg 400>>
//Marinevliegkamp 'De Mok' met [[Martin S]] (J1), 1917.<br>Links de staart van de [[Friedrichshafen FF.33J|Friedrichshafen FF.33L]] (V2)<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/370c544e-fb3e-5eec-6981-394f4e2fde66/media/3ef21494-ad53-9064-99b3-07452429a0ec?mode=detail&view=horizontal&q=Martin%20S&rows=1&page=24&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918-1924_MVK_De_Kooy_Spijker_V2_2.jpg 400>>
//Marinevliegkamp De Kooy met [[Spyker V.2]] lesvliegtuig, ca. 1921.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/49?q_searchfield=Kooy]]//
<<imageh 1926_Fairey_IIID_F3_ab_Sumatra.jpg 400>>
//Den Helder, boordvliegtuig [[Fairey IIID]] (F3) wordt aan boord gehezen van de kruiser [[Sumatra (1926)]], 1926.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail?q_searchfield=Fairey+IIID]]//
<<imageh Fokker_BII_flying_boat.jpg 400>>
//[[Fokker B.II]] vliegboot, 1923.<br>Slechts één prototype getest door de MLD.<br>[[Public domain|https://commons.wikimedia.org/wiki/File:Fokker_B.II_flying_boat_(RRQ).jpg]]//
<<imageh 1919_Fokker_CIw_1.jpg 400>>
//Experimenteel - mogelijk nog Duits - [[Fokker C.I]] drijvervliegtuig (dus eigenlijk een C.Iw), 1919.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/3?q_searchfield=Fokker+C.I]]//
<<imageh 1921-1936_Fokker_CI_MLD_F6.jpg 400>>
//[[Fokker C.I]] (F6) van de MLD, ca. 1928.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/beeldbank/indeling/detail/start/23?q_searchfield=Fokker+F6]]//
<<imageh 1941_Soerabaja_1e_Consolidated_PBY-5_Catalina.jpg 400>>
//[[Consolidated PBY-5]] Catalina vliegboot te Soerabaja, het is de eerste Catalina die daar aankomt, 1941.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/3061bdd2-9939-786c-1286-41d08fad0406/media/c9f7bed0-b5d4-8b2c-2246-2fa6815dbf4a?mode=detail&view=horizontal&q=catalina&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1917_De_Kooy_Farman_F-22_reg_A-5.jpg 400>>
//Vliegkamp De Kooy, met [[Farman HF.22]] (A5), 1917.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/90dc744d-9069-16c5-9f9c-8e252194ef7a/media/9b8420a3-56da-e78f-33b9-b0722f32b75d?mode=detail&view=horizontal&q=Farman&rows=1&page=92&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1928_De_Mok_prototype_Fokker_C-VIIw.jpg 400>>
//De Mok met [[Fokker C.VIIw]], 1928.<br>Dit vliegtuig was het prototype voor de lichte zeeverkenners aan boord van de kruisers [[Java (1925)]] en [[Sumatra (1926)]].<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/ec16d812-21c1-55f5-7f70-8e7852c37cec/media/f25983e3-24a5-1754-1316-ced25477facd?mode=detail&view=horizontal&q=Mok&rows=1&page=113&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1917_MVK_Veere_met_Van_Berkel_WAs.jpg 400>>
//Marinevliegkamp Veere met 3 [[Van Berkel W-A]] vliegtuigen, 1917.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/2e822780-e02b-7702-b8cd-a8d73ef76569/media/93aee522-092d-29f8-4c40-b14231d556dd?mode=detail&view=horizontal&q=veere&rows=1&page=18&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1939_MVK_Veere_2_T-VIIIw_R_2_C-XIVw_F.jpg 400>>
//Marinevliegkamp Veere met 2x [[Fokker T.VIIIw]] torpedobommenwerpers (R2 en R4) en 2x [[Fokker C.XIVw]] (F19 en F20), 1939.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/b96e9d47-ee1b-1248-c336-9f16427eb6c6/media/6c4f3c52-dc8a-89b5-fc7c-8a2f5992f8eb?mode=detail&view=horizontal&q=veere&rows=1&page=25&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918-06-17_Souburg_mislukte_landing_De_Havilland_DH4_reg_A7935.jpg 400>>
//Mislukte landing van een Britse <<popup "De Havilland (Airco) DH.4 (A7935)" "De Havilland - Airco">> op marinevliegkamp Souburg, 17 Juni 1918.<br>Na de landing werd de bemanning geïnterneerd.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/aa74d676-4bb2-a914-3cbb-c24da03591c1/media/bb37c895-9eb9-e35d-740a-addcf3bd26d5?mode=detail&view=horizontal&q=souburg&rows=1&page=40&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1939_Vlissingen_Fokker_SIX_reg_37.jpg 400>>
//Leerling-vlieger G. Emmens (LVA) bij een van driehoekige oranje herkenningstekens voorziene [[Fokker S.IX]] met registratie 37 op vliegveld Vlissingen, 1939.<br>''N.B.:'' De MLD beschikte ook over een 15-tal Fokkers S.IX.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/8b025eaf-924e-0c8e-13db-b6fb7b920882/media/57780275-a013-11da-ff26-3ebfd5b03eba?mode=detail&view=horizontal&q=vlissingen&rows=1&page=195&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1937_Fokker_S-IX_S20.jpg 400>>
//[[Fokker S.IX]] met registratie 20, 1937.<br>''N.B.:'' De MLD beschikte ook over een 15-tal Fokkers S.IX.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/1baee411-7fd9-1e47-5f4c-e1815efbcbe5/media/2e3e8d66-4ed8-3216-a56c-9912ceb79789?mode=detail&view=horizontal&q=Fokker%20S.IX&rows=1&page=11&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&filterAction]]//
<<imageh 1917_De_Mok_Martin_S_reg_J-1.jpg 400>>
//Marinevliegkamp 'De Mok' met [[Martin S]] (J1), 1917.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/2bdeebf4-479c-e322-0aa5-ca3d647acbed/media/9aec6227-b128-74b3-3dc6-531da2344949?mode=detail&view=horizontal&q=Martin%20S&rows=1&page=12&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh White_and_Thompson_No_3_1.jpg 400>>
//Britse [[White & Thompson no. 3]] vliegboot, 1915.<br>© [[IWM|https://www.iwm.org.uk/collections/item/object/205315486]]//
<<imageh White_and_Thompson_No_3_2.jpg 400>>
//Britse [[White & Thompson no. 3]] (3807) vliegboot, 1915.<br>© [[IWM|https://www.iwm.org.uk/collections/item/object/205314121]]//
<<imageh 1914-1919_De_Mok_Friedrichshafen_FF-19.jpg 400>>
//De Mok met [[Friedrichshafen FF.19]] (R1), 1914.<br>Dit was het eerste (geïnterneerde) toestel voor de MLD.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/f91b89ff-0e8d-6f4d-5a2a-912e439c78f6/media/f7085b47-d0b3-a8e2-964a-e79866f524a7?mode=detail&view=horizontal&q=Friedrichshafen%20FF&rows=1&page=29&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1915_Friedrichshafen_FF-29_205_2.jpg 400>>
//Schiermonnikoog met geïnterneerde Duitse [[Friedrichshafen FF.29]] (205), 21-11-1915.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/7ef7074e-ff92-c683-3ed8-7253c4dc5f7a/media/b1d46fa2-52ec-45b6-aea1-4bec52cc0a52?mode=detail&view=horizontal&q=Friedrichshafen%20FF-29&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918-1919_De_Mok_Friedrichshafen_FF-33L.jpg 400>>
//MVK De Mok met geïnterneerde Duitse [[Friedrichshafen FF.33L]] (V3), 1918.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/c6032b66-dc16-c26f-709c-4ffd0b5b4e01/media/f6ff0254-207d-0f72-6a50-1089046d5c9e?mode=detail&view=horizontal&q=Friedrichshafen%20FF&rows=1&page=28&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1924_Fokker_S_III.jpg 400>>
//[[Fokker S.III]] (S3), 1924.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/860f6bb7-8a0e-eba5-c195-ff0a17057687/media/90ae8dbb-cffb-e7f6-6958-7cadd7d69a75?mode=detail&view=horizontal&q=Fokker%20S.III&rows=1&page=7&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918_De_Mok_Curtiss_Felixstowe_F2A_L-1.jpg 400>>
//De Mok met geïnterneerde Britse [[Curtiss Felixstowe F.2A]] patrouillevliegboot (L-1), 1918.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/9c2d5274-b8f7-60c6-a50d-317af1d6c3aa/media/cd5de102-2a8d-58ce-62eb-0f7fdb8695c1?mode=detail&view=horizontal&q=Felixstowe&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1917_Spijker_V1.jpg 400>>
//[[Spyker V.1]], 1917.//
<<imageh Fokker_D_VII_met_lijnmotor.jpg 400>>
//2x [[Fokker D.VII]] (D20 & D30) met verbeterde lijnmotor, ca. 1925.//
<<imageh 1917_De_Mok_Short_184.jpg 400>>
//De Mok, torpedobommenwerper [[Short 184]] (26-09-1917 geïnterneerd na noodlanding bij Borkum), 1917.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/2717cb2f-d537-29c8-faa8-95a689821107/media/112c4b57-475a-c2ab-ce6d-cd80736911fc?mode=detail&view=horizontal&q=Short%20184&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh Thulin_LA.jpg 400>>
//[[Thulin LA]], 1918.//
<<imageh 1917_De_Kooy_Thulin_K_D3.jpg 400>>
//De Kooy met [[Thulin K]] (D3), 1917.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/c65ff873-09ef-c891-7a79-d3b5c270f52c/media/09265559-a1dc-8ae2-828f-6b3c4daea242?mode=detail&view=horizontal&q=Thulin&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&filterAction]]//
<<imageh 1917_ca_Curtiss_H-12.jpg 400>>
//[[Curtiss H-12]], ca. 1917.<br>© [[IWM|https://www.iwm.org.uk/collections/item/object/205314835]]//
<<imageh Gotha_WD_11_torpedobommenwerper_993.jpg 400>>
//Een [[Gotha WD-11]] (993) wordt in het water getakeld, ca. 1918.<br>© [[IWM|https://www.iwm.org.uk/collections/item/object/205196473]]//
<<imageh 1917_De_Mok_Wright-Martin_R_H1.jpg 400>>
//MVK De Mok met [[Martin R]] (H1), 1917.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/19e29e94-4b53-1345-5ae8-1a79e501d12b/media/fd1972b4-1b6f-2ea8-cea2-2cde3015c309?mode=detail&view=horizontal&q=Martin%20R&rows=1&page=1]]//
<<imageh 1919_Van_Berkel_WB_prototype.jpg 400>>
//Prototype [[Van Berkel W-B]] voor de start van de proefvluchten, 1919.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/b83bdc2f-dd15-14b7-6179-c81acfd2cd76/media/0de4341e-393e-5ecb-49b4-49493c698c75?mode=detail&view=horizontal&q=van%20Berkel&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<!-- Van Berkel WB (prototype) (1921-1933) voor de start van de proefvluchten. Start van proefvluchten met de Van Berkel WB. Eendekker. Aan boord van de "Vliegkamp 5" o.m. de overnamecommissie (onder wie Ltz1 D. Vreede en Ltz2 K.W.F.M. Doorman) en directieleden van de N.V. Van Berkel. Fabrieksvlieger Carl Lesch klimt aan boord.-->
<<imageh 1917_Rumpler_6B-2_U-1.jpg 400>>
//Geïnterneerd Duits jachtvliegtuig [[Rumpler 6B-2]] (U-1) in Nederlands-Indië, 1917.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/3bdcb136-ea3b-06de-0480-88adba75ddef/media/6e10fda7-8437-cc9b-9342-9862f1a18cea?mode=detail&view=horizontal&q=Rumpler&rows=1&page=38&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&filterAction]]//
<<imageh 1917_Tandjong_Priok_Rumpler_6B-2_U1.jpg 400>>
//Geïnterneerd Duits jachtvliegtuig [[Rumpler 6B-2]] (U-1) in Tandjong Priok (Nederlands-Indië), 1917.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/b32c2859-fdde-abdd-6ffb-08f5ae5cd042/media/365c41d6-ad7f-2311-498e-3c7d640528e7?mode=detail&view=horizontal&q=Rumpler&rows=1&page=64&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918_De_Mok_Friedrichshafen_FF-49C.jpg 400>>
//DMVK De Mok met geïnterneerde Duitse verkenner [[Friedrichshafen FF.49C]] (V4) , 1918.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/a0870e01-f47d-5a5d-a75d-12a6f4fc784b/media/a1c73301-c90f-1aec-8770-e9376a4beb17?mode=detail&view=horizontal&q=Friedrichshafen%20FF%2049C&rows=1&page=5&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918_Hansa-Brandenburg_W-12_W1_1.jpg 400>>
//Na een noodlanding van deze Duitse [[Hansa-Brandenburg W.12]] verkenner bij Rottummeroog werd deze geïnterneerd met registratie W1, 1918.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/cf31c1a5-c770-1d9e-f62d-db3a8be9f7c9/media/36cb1f49-a8d2-d397-a91e-3b2fb0ae606b?mode=detail&view=horizontal&q=Hansa-Brandenburg&rows=1&page=2&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918_Hansa-Brandenburg_W-12_W1_2.jpg 400>>
//Na een noodlanding van deze Duitse [[Hansa-Brandenburg W.12]] verkenner bij Rottummeroog werd deze geïnterneerd met registratie W1, 1918.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/db425c9b-0b3d-469e-6e2e-6094db4f10b8/media/95db5978-cad3-84d4-2c8e-2a166471fe53?mode=detail&view=horizontal&q=Hansa-Brandenburg&rows=1&page=3&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&filterAction]]//
<<imageh 19xx_Deense_Hansa-Brandenburg_W29.jpg 400>>
//Deens [[Hansa-Brandenburg W.29]] jachtvliegtuig, ca. 1921.//
<<imageh Hansa-Brandenburg_W29_Japanse_navy.jpg 400>>
//Japans [[Hansa-Brandenburg W.29]] jachtvliegtuig, ca. 1925.//
<<imageh 1916_White_Thompson_no_3_reg_MG1.jpg 400>>
//De Mok met geïnterneerde Britse [[White & Thompson no. 3]] vliegboot (MG1), 1916.//
<<imageh Kawanishi_H6K_Mavis.jpg 400>>
//Japanse [[Kawanishi H6K|Kawanishi H6K4]] vliegboot, ca. 1939.//
<<imageh 1946_Short_S45_Seaford.jpg 400>>
//[[Short S.45 Seaford]] vliegboot, ca. 1946.//
<<imageh 1938_ca_Blohm_Voss_HA139.jpg 400>>
//Postvliegtuig [[Blohm & Voss Ha 139]], klaar voor een katapultstart, ca. 1938.<br>© [[LIFE|https://time.com/photography/life/]]//
<<imageh 1937_Blohm_Voss_Ha139.jpg 400>>
//Postvliegtuig [[Blohm & Voss Ha 139]]wordt aan boord gehezen, 1937.//
<<imageh 1967_Martin_P5M_Marlin.jpg 400>>
//San Diego Bay: Laatste vlucht van de US Navy [[Martin SP-5B Marlin|Martin P5M-2 Marlin]] (laatste versie van P5M), 1967.//
<<imageh 1943_Boeing_XPBB-1_Sea_Ranger.jpg 400>>
//[[Boeing XPBB-1 Sea Ranger]], 1943.//
<<imageh 1943_Boeing_XPBB-1_Sea_Ranger_2.jpg 400>>
//[[Boeing XPBB-1 Sea Ranger]], 1943.//
<<imageh 1942_OS2U_Kingfisher.jpg 400>>
//[[Vought OS2U Kingfisher]], ca. 1942.//
<<imageh 1943_ca_Vought_OS2U_Kingfisher.jpg 400>>
//[[Vought OS2U Kingfisher]], ca. 1943.//
<<imageh 1941_ca_Arado-Ar196.jpg 400>>
//[[Arado Ar 196]] verkenningsvliegtuig, ca. 1941.//
<<imageh 1918_Curtiss_Felixstowe_F-2A_2.jpg 400>>
//De Mok met geïnterneerde Britse [[Curtiss Felixstowe F.2A]] patrouillevliegboot (L-1), 1918.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/595f6282-afc0-153c-463b-8d4a1022cc35/media/0d5b46a5-1637-9abe-210d-e89fee3448fd?mode=detail&view=horizontal&q=felixstowe&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918_Curtiss_H-12.jpg 400>>
//[[Curtiss H-12]], 1918.//
<<imageh Dornier_Seastar_CD2_D-ICKS.jpg 400>>
//[[Dornier Seastar CD2]] (D-ICKS), 2017.//
<<imageh 1925_Hamble_Fairey_IIID_F1-F4.jpg 400>>
//Vier boordvliegtuigen [[Fairey IIID]] (F1 t/m F4) tijdens de fabrieksaflevering te Hamble (UK).<br>Gereed voor de overtocht naar Nederland, 1925.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/634e9687-fd03-e68e-2cee-b9d28c945184/media/408bafa9-824f-ed68-3a47-3a05352d82c7?mode=detail&view=horizontal&q=Fairey&rows=1&page=90]]//
<<imageh Fokker_BII_2.jpg 400>>
//[[Fokker B.II]] vliegboot, 1923.<br>Slechts één prototype getest door de MLD.<br>[[Public domain|https://www.flickr.com/photos/sdasmarchives/7585248416/]]//
<<imageh 1938_Veere_Fokker_CVc.jpg 400>>
//Vliegkamp Veere, een groep leerling-vliegtuigmakers voor de [[Fokker C.VC|Fokker C.V]] (Z-10), 1938.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/c12291f8-ac2b-9822-7798-9081399fb613/media/966f7889-0c0d-3e75-a1ed-dc93215d9d3c?mode=detail&view=horizontal&q=Fokker%20C.V&rows=1&page=112&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1938_Fokker_T4a_2.jpg 400>>
//[[Fokker T.IVa]] (T-23) torpedobommenwerper wordt te water gelaten bij de Fokker fabriek in Amsterdam-N, 1938.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/f7f4d694-ac2a-304d-29ca-be988c68d855/media/1a66ccd6-3569-775a-8935-33c5136b8c6d?mode=detail&view=horizontal&q=Fokker%20T-23&rows=1&page=3&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1914_Friedrichshafen_FF-19_2.jpg 400>>
//De Mok met [[Friedrichshafen FF.19]] (R1), 1914.<br>Dit was het eerste (geïnterneerde) toestel voor de MLD.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/b9d6db6e-2f8b-6ddf-5c0c-c025f48871a8/media/73030485-8432-e6d0-4ab6-7704afed4d91?mode=detail&view=horizontal&q=friedrichshafen&rows=1&page=6&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918_Friederichshafen_FF-33L.jpg 400>>
//DMVK De Mok met zeeverkenner [[Friedrichshafen FF.33L]] (V22), ca. 1919.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/248641f4-31de-b67f-b07e-fef15528afef/media/602ff5ca-248b-ae06-ec6c-8d9b74588d1f?mode=detail&view=horizontal&q=33L&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&filterAction]]//
<<imageh 1915_Friedrichshafen_FF-29_205_4.jpg 400>>
//Schiermonnikoog met geïnterneerde Duitse [[Friedrichshafen FF.29]] (205), 21-11-1915.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/95247049-3737-86d6-487d-76e83b9f865f/media/11cb5d44-068f-55f0-623d-86031d3cd3a6?mode=detail&view=horizontal&q=29&rows=1&page=3&fq%5B%5D=search_s_mediatype:%22Foto%27s%22&fq%5B%5D=search_s_tw_all:%22Friedrichshafen%20FF-29%22]]//
<<imageh 1919_Friedrichshafen_FF-49C.jpg 400>>
//DMVK De Mok met geïnterneerde Duitse verkenner [[Friedrichshafen FF.49C]] (V4), 1919.<br>Rechts de [[Friedrichshafen FF.49C]] (V2).<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/8c4d928d-9e9b-ae6b-6aa1-fb2de8f3b8d8/media/a7912e56-ef94-8cbe-8861-d34d8cd6e7af?mode=detail&view=horizontal&q=friedrichshafen&rows=1&page=7&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1918_ca_Gotha_WD11.jpg 400>>
//Een [[Gotha WD-11]], ca. 1918.//
<<imageh 1944_ca_Kawanishi_H8K_Emily.jpg 400>>
//Japanse [[Kawanishi H8K2]] vliegboot (geallieerde codenaam: Emily), ca. 1944.//
<<imageh 1946_Kawanishi_H6K_in_Soerabaja.jpg 400>>
//Japanse [[Kawanishi H6K|Kawanishi H6K4]] vliegboot te Soerabaja, 1946.<br>
Royal Air Force personeel inspecteert een H6K voor een testvlucht.<br>
Indonesische nationalisten hadden de Indonesische vlag (rood/wit) op de vleugel geverfd; Nederlanders hadden op de romp een blauwe band toegevoegd.//
<<imageh 1954_Martin_P5M-1G.jpg 400>>
// [[Martin P5M-1|Martin P5M-2 Marlin]] vliegboot van de US Coast Guard, 1954.//
<<imageh 1917_Kalidjati_Glenn-Martin_R.jpg 400>>
//Kalidjati (Java), lesvliegtuig [[Martin R]], 1917.<br>Hier werden ook marinevliegers opgeleid.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/18d4778e-3496-02fa-f941-8f3ab4cafe39/media/4b053055-abf4-5b89-83b1-62fd016e1809?mode=detail&view=horizontal&q=Martin%20R&rows=1&page=3&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1936_ca_Savoia_Marchetti_S66_2.jpg 400>>
//Een [[Savoia-Marchetti S.66]] stijgt op, ca. 1936.//
<<imageh 1940_Short_Sunderland_Mk_I.jpg 400>>
//[[Short S.25 Sunderland Mk I|Short S.25 Sunderland Mk III]], 1940.//
<<imageh Seaford_mk1_in_flight.jpg 400>>
//[[Short S.45 Seaford]] vliegboot, ca. 1946.//
<<imageh Van_Berkel_W-B.jpg 400>>
//Prototype [[Van Berkel W-B]] voor de start van de proefvluchten, ca. 1925.<br>[[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/b83bdc2f-dd15-14b7-6179-c81acfd2cd76/media/0de4341e-393e-5ecb-49b4-49493c698c75?mode=detail&view=horizontal&q=van%20Berkel&rows=1&page=1&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<<imageh 1927-1936_Fokker_D-VII_D24.jpg 400>>
//[[Fokker D.VII]] (D24), ca. 1928.<br>© [[NIMH|https://nimh-beeldbank.defensie.nl/foto-s/detail/f095d34d-d289-5c61-06a7-23b78a5ad51b/media/52802ac0-eb9a-fb3a-e7f8-ade012768e4f?mode=detail&view=horizontal&q=fokker%20D.VII&rows=1&page=14&fq%5B%5D=search_s_mediatype:%22Foto%27s%22]]//
<$list filter="[tag[vliegtuigfoto]random[1]]">
<$transclude mode="block"/>
</$list>
<$button set="$:/temp/temp" setTo="" class="tc-btn-invisible tgc-trigger-knop" tooltip="Volgende vliegtuigfoto">{{Trigger-icon}}</$button>
<$button message="tm-close-tiddler" class="tc-btn-invisible tgc-sluit-knop" tooltip="Sluit deze vliegtuigfoto">{{Sluitknop-icon}}</$button>
<$button class="tc-btn-invisible tgc-foto-button" tooltip="Willekeurige vliegtuigfoto">
<$action-sendmessage $message="tm-modal" $param="Vliegtuigfoto"/>
{{$:/_new_plane_icon}}
</$button>
{{||$:/_ship_template}}
* <<slider "Mijnenveger Vliestroom 1954" Schepen450>>
Oorspronkelijk US YMS-155, daarna Brits BYMS 2155.<br>
{{YMS47}}<br>
1956 - 1962 duikvaartuig.
Vliegkamp Morokrembangan bij Soerabaja.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Volkerak 1954" Schepen451>>
Oorspronkelijk US YMS-188, daarna Brits BYMS 2188.<br>
{{YMS46}}
{{||$:/_plane_template}}
* <<slider "Vought OS2U Kingfisher ca. 1942" Vliegtuig200>>
* <<slider "Vought OS2U Kingfisher ca. 1943" Vliegtuig201>>
Vanwege de Japanse dreiging werden in Augustus 1941 in alle haast in de USA 24 Kingfisher OS2U-1 besteld voor gebruik door de MLD in Nederlands-Indië.<br>
De kisten werden in scheepskratten ingepakt met reservedelen en motoren.<br>
Begin 1942 waren er 24 stuks onderweg van New York naar Nederlands-Indië. Vanwege de Japanse aanval op Java weken de transportschepen uit naar Australië waar ze maart en april 1942 aankwamen. 12 kisten waren watervliegtuigen, 12 konden ook als katapultvliegtuig worden gebruikt.<br>
6 kisten ging naar de Amerikaanse marine in Nomea en de rest naar de RAAF die ze gebruikte voor onderzeebootbestrijding en reddingsoperaties o.a. bij hun 107 squadron.<br>
Dus de toestellen zijn nooit in daadwerkelijke Nederlandse dienst geweest.
!! Vought
|Type |rol |opmerkingen |h
|[[OS2U Kingfisher|Vought OS2U Kingfisher]]|{{Vought OS2U Kingfisher!!soort}}|besteld, maar nooit in Nederlandse dienst|
Ex-stoomtrawler Azalia (1902) werd in 1916 aangekocht en op de Rijkswerf te Willemsoord verbouwd tot mijnenlegger en mijnenvisser. In 1920 deed het schip dienst als loodsboot en in 1924 weer als mijnenlegger. Op 6 oktober 1936 werd het vaartuig uit de sterkte afgevoerd.
In 1965 omgebouwd tot duikvaartuig.
{{||$:/_ship_template}}
* <<slider "Torpedoboten Smeroe, Tangka en Wajang, ca. 1911" Schepen344>>
In 1946 op een Japanse mijn gevaren nabij Balikpapan.
Duitse mijnenvegers werden na WWII verdeeld over de geallieerden.<br>
Nederland kreeg 10 mijnenvegers van de R218-klasse - Raumboten - ondiepwatermijnenvegers.
ex IJM24, Orsino (1929).<br>De trawler werd op 25 augustus 1939 gevorderd en verbouwd tot hulpmijnenveger (Hulpmijnenveger 1). Op 10 mei 1940 stoomde Hr. Ms. Walrus, samen met de [[Alkmaar (1939)]], de [[Z5 (1917)]] en de TM51 de Nieuwe Waterweg op om Duitse mitrailleurnesten op de Willemsbrug onder vuur te nemen. Het schip viel op 14 mei 1940 in Duitse handen. In september 1943 ging de aangepaste trawler voor Scheveningen verloren door een treffer van een Britse torpedomotorboot.
{{||$:/_ship_template}}
* <<slider "Onderzeeboot Walrus ca. 1953" Schepen173>>
{{||$:/_ship_template}}
* <<slider "Duikboot Walrus 2014" Schepen320>>
De Nederlandse marine leende twee schepen van de US ''Baloa''-klasse ter vervanging van de onderzeeboten van de Britse T-klasse - [[Dolfijn (1948)]] en [[Zeehond (1944)]], die na een leenperiode van 5 jaar teruggegeven moesten worden aan de Britse marine.
Nadat de twee schepen in 1952 een zogenaamde //Guppy II// update hadden ondergaan werden d schepen uitgeleend aan de Nederlandse marine voor een periode van vijf jaar; deze leenperiode werd meerdere keren met telkens vijf jaar verlengd.<br>Via <<popup MDAP MDAP>>.
<<tabs "
[[Info_walvisvaart]]
[[Walvisvaart1892]]
[[Willem Barendsz]]
" "
[[Info_walvisvaart]]
" "" "
">>
!! Oostelijke Handelskade 1892
Enkele foto's van Jacob Olie van een in Noorwegen gevangen en geprepareerde walvis die in Amsterdam van 3 tot 27 maart 1892 tentoongesteld werd.
<<tabs "
[[Jacob Olie147]]
[[Jacob Olie148]]
[[Jacob Olie145]]
[[Jacob Olie146]]
[[Jacob Olie149]]
" "
[[Jacob Olie147]]
" "" "
">>
''Waterman'' ex SS La Grande Victory (VC2-S-AP3)<br>
Van 1947 tot 1950 in gebruik geweest als troepentransportschip ((Nederlands-Indië, Nieuw-Guinea).<br>
In 1951 werd het schip omgebouwd tot emigrantenschip (Canada en Australië).
@@.c <<slider "Verkennen databank" "Verkennen databank watervliegtuigen">>@@
<<tabs "
[[Informatie historische watervliegtuigen]]
[[Merken]]
[[Databank watervliegtuigen]]
[[Vliegkampen]]
[[Foto's van watervliegtuigen]]
[[Filmpjes watervliegtuigen]]
" "
[[Informatie omtrent historische watervliegtuigen]]
" "" "">>
| Vliegtuigen van de Marine Luchtvaartdienst |<|<|<|<|h
|Type|In gebruik|Aantal|Squadrons||h
|[[Supermarine Sea Otter Mk.2]]| 1949-1954 | 8 ||Air Sea Rescue amphibian aircraft|
|[[Martin PBM-5A Mariner]]| 1955-1959 | 17 |VSQ 8, VSQ 321|16-300 t/m 16-316|
|[[Catalina PBY-5A|Consolidated PBY-5A]]| 1946-1957 | 22 |VSQ 7||
!! Netherlands Naval Aviation Service
VSQ 321 based at Biak Air Base, Dutch New Guinea operated 15 PBM-5As between 1955 and 1960 after the retirement of their PBYs.
Production-quality (PBM-1) versions of the aircraft were powered by 2 x Wright R2600-6 14-cylinder air-cooled radial piston engines of 1,600 horsepower each. These drove three-bladed propeller units. Their position on the high-mounted wings allowed for the necessary clearance of the water, particularly any salty spray that might occur during running actions. Performance included a maximum speed of 205 miles per hour, a range out to 3,000 miles and a service ceiling of 19,800 feet. Rate-of-climb was 800 feet-per-minute.
Overall length reached 79.9 feet with a wingspan of 118 feet and a height of 27.5 feet. Empty weight was 33,175lb against an MTOW of 56,000lb when loaded.
The PBM-3 brought about fixed pontoon floats and was powered by R2600-12 series engines of 1,700 horsepower
The PBM-3D was another patroller but outfitted with R2600-22 engines of 1,900 horsepower
The PBM-5 saw production reach 628 units and carried 2 x Pratt & Whitney R3350 series engines of 2,100 horsepower each
the Netherlands (15 units, NAS)
Martin PBM Mariner
Maritime Patrol Flying Boat
Martin PBM-5A United States Navy 122071 © Karsten Palt
Photo ©: Karsten Palt
The Martin PBM Mariner is a twin-engined maritime patrol flying boat produced by the US-American manufacturer Glenn L. Martin Company. The PBM Mariner operations include Search and Rescue (SAR) and transport missions also.
The last version PBM-5A was a amphibium aircraft with retractable landing gear.
|Crew |7|
|Propulsion|2 Radial Engines|
|Engine Model|Wright R-2600-22 Cyclone|
|Engine Power (each)|1417 kW / 1900 hp|
|Speed|341 km/h / 184 kts (212 mph)|
|Service Ceiling|6.035 m / 19.800 ft|
|Range|3.606 km / 1.947 NM / 2.241 mi.|
|Empty Weight|15.048 kg / 33.175 lbs|
|max. Takeoff Weight|26.308 kg / 58.000 lbs|
|Wing Span|35,97 m / 118 ft 0 in|
|Wing Area|130,8 m² / 1408 ft²|
|Length|24,33 m / 79 ft 10 in|
|Height|8,38 m / 27 ft 6 in|
|First Flight|18.02.1939|
|Production Status|out of production|
|Production Range|1940-1949|
|Total Production|1285|
!!! Website (server)
http://192.168.0.24/
```
ssh tonnis@192.168.0.24
```
!!! FTP
```
192.168.0.24
SFTP
user: tonnis
pw: T#99i
```
folder: /data/tongerner.nl/www
Filezilla heeft problemen met overzetten vanwege user=`www-data`
Daarom:
Tijdelijk, vóór het uploaden:
```
sudo chown -R tonnis:tonnis /data/tongerner.nl
```
Daarna, na het uploaden, weer terugzetten:
```
sudo chown -R www-data:www-data /data/tongerner.nl
```
De Wega werd in 1923 in dienst gesteld bij de {{GM}} en evenals zusterschip [[Sirius (1922)]] gestationeerd in Tandjong Priok. In de jaren '30 werd het schip gestationeerd in Noord-Sumatra en opereerde vanuit Olehleh. Ten tijde van de militarisering bleef het schip op haar post.<br>
Op 26 januari 1942 werd Hr. Ms. Wega, liggend op de rede van Olehleh aangevallen door vier Japanse bommenwerpers, waarbij het schip verloreg ging.
{{||$:/_ship_template}}
* <<slider "Mijnenveger Westerschelde ca. 1953" Schepen454>>
Oorspronkelijk Britse BYMS 46 (in US gebouwd).<br>
{{YMS46}}<br>
In 1957 in gebruik genomen als instructievaartuig bij de {{TOKM}}.
{{||$:/_plane_template}}
* <<slider "White & Thompson no. 3 1915" Vliegtuig170>>
* <<slider "White & Thompson no. 3 1915" Vliegtuig169>>
* <<slider "White & Thompson no. 3 1916" Vliegtuig192>>
In februari 1915 werd een Engels toestel geïnterneerd. Het had een noodlanding gemaakt op zee nabij de Westerschelde tijdens een aanval op Zeebrugge.<br>
Het was geraakt door Duits afweergeschut en werd overmeesterd door een Nederlandse torpedoboot en versleept naar Vlissingen. Later werd het aangekocht voor 1500 pond sterling en gerepareerd op Soesterberg.
Het toestel, voorzien van de registratie MG1 en later M1, vloog vanaf april 1916 vanaf Schellingwoude bij Amsterdam en vanaf De Mok. In Juli 1916 was er een breuk in de motorbok en na reparatie werd er vanaf april 1917 weer wat mee gevlogen.
!! White & Thompson
|>|| bij MLD |<|<|h
|Type |rol |aantal |registratie |dienstperiode |h
|[[no. 3|White & Thompson no. 3]] |{{White & Thompson no. 3!!soort}} | 1| MG1, M1 | {{White & Thompson no. 3!!per}} |
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Willebrord Snellius 1930" Schepen348>>
* <<slider "Opnemingsvaartuig Willebrord Snellius ca. 1935" Schepen349>>
{{NI}}<br>In tegenstelling tot het 2^^e^^ schip ([[Snellius (1952)]]) droeg dit vaartuig de volledige naam Willebrord Snellius.<br>
Indienststelling 1929. Na een korte proefreis over de Atlantische Oceaan vertok het vaartuig naar Nederlands-Indië.<br>
Aldaar vertrok het vaartuig voor een wetenschappelijke en 15 maanden durende expeditie op oceanografisch gebied in het oostelijke gedeelte van de Indische Archipel. Er werden 34.000 zeemijlen afgelegd; op 373 stations water- en werden bodemmonsters genomen of diepzeelodingen verricht.<br>
Hierna werd begonnen mey het afdreggen van scheepvaartroutes.<br>
In 1939 werd de Gouvernementsmarine gemilitariseerd. Het vaartuig werd nu belast met de functie van stationsschip te Menado en het verrichten van verkenningdiensten in de Celebes en Molukse Zee. Tot kort voor het uitbreken van de oorlog met Japan bleef het schip deze dienst waarnemen.<br>
In 1942 werd werd de Willebrord Snellius aan de ingang van het Marine-Etablissement te Soerabaja tot zinken gebracht, nadat was gebleken dat het onmogelijk was met het kleine scheepje uit te wijken (onvoldoende brandstof aan boord en een deel van de Inlandse bemanning deserteerde).
!! Willem Barendsz
<<tabs "
[[Info Willem Barendsz]]
[[Foto's Willem Barendsz]]
[[Filmpjes Willem Barendsz]]
" "
[[Info Willem Barendsz]]
" "" "
">>
{{||$:/_ship_template}}
* <<slider "Mijnenlegger Willem van der Zaan 1939" Schepen083>>
In vredestijd diende het schip als opleidingsschip voor (40) adelborsten. Het is echter nooit als zodanig in gebruik geweest vanwege WWII.<br>
Oorspronkelijk was zij uitgerust met een watervliegtuig. Tijdens de oorlog werd dit verwijderd.<br>
1949-1950 fungeerde de Willem van der Zaan als stationsschip in de Nederlandse Antillen.<br>
In 1950 in Den Helder omgebouwd tot fregat.<br>
In 1961 logement- en werkschip voor de mijnendienst.
{{||$:/_ship_template}}
* <<slider "Fregat Willem van der Zaan 1997" Schepen213>>
{{||$:/_ship_template}}
* <<slider "Mijnenveger Willem van Ewijck ca. 1938" Schepen424>>
De schepen van de Jan van Amstelklasse konden ook ingericht worden als mijnenlegger. Op 8 september 1939 was de Willem van Ewijck samen met de mijnenvegers Jan van Gelder, Abraham van der Hulst, Pieter Florisz. en de mijnenlegger Nautilus bezig met het leggen van mijnenvelden rond de zeegaten van de Waddeneilanden. Voor de juiste ligging van zo'n veld moest in verband met de stroom hier en daar een mijn worden opgeruimd. Bij het vegen van zo'n mijn, wat gedaan werd met behulp van een mitrailleur, dreef de Willem van Ewijck door een sterke stroom over een andere mijn. Het schip werd midscheeps getroffen, brak in tweeën en zonk. Bij dit incident verloren 30 bemanningsleden het leven.
{{||$:/_ship_template}}
* <<slider "Willem Warmont ca. 1915" Schepen129>>
{{||$:/_ship_template}}
* <<slider "Mijnenjager Willemstad 2015" Schepen328>>
//Bron: Wikipedia,// https://en.wikipedia.org/wiki/William_Edward_Ayrton
<<popup "William Edward Ayrton" WilliamEdwardAyrton>> (14 september 1847 – 8 november 1908) was een Engelse natuurkundige en elektrisch ingenieur.
!!Levensloop
Ayrton, in Londen geboren als zoon van advocaat Edward Nugent Ayrton, verkreeg zijn opleiding aan de 'University College School' en het 'University College' te Londen. Later studeerde hij bij lord Kelvin in Glasgow.
!!!Indië
In 1868 ging hij naar Bengalen, in dienst van het 'Indian Government Telegraph department' waar hij een methode uitvond om fouten in leidingen te detecteren, belangrijk voor het communicatienetwerk over land.
!!!Japan
In 1873 accepteerde hij een uitnodiging van de Japanse regering als hoogleraar 'Natural Philosophy and Telegraphy' aan het 'Imperial College of Engineering', Tokio.
!!!Londen
Zes jaar later werd hij hoogleraar in de toegepaste natuurkunde aan het 'Finsbury Technical College'.<br>
In 1884, werd hij hoogleraar in de elektrotechniek/toegepaste natuurkunde aan het Central Technical College, South Kensington.<br>
Hij publiceerde een groot aantal artikelen over fysische, en in het bijzonder elektrische, onderwerpen, en zijn naam werd vooral geassocieerd, samen met die van professor John Perry, met de uitvinding van een lange reeks van elektrische meetinstrumenten, met inbegrip van de spiraal-veer ampèremeter en de wattmeter. Ze werkten ook samen aan elektrificatie van het spoor, produceerden een rollenbank en de eerste elektrische driewieler.<br>
Ayrton is ook bekend door zijn werk aan het elektrische zoeklicht.
|borderless|k
|<$transclude tiddler="William Ayrton" mode="block"/>| |^<$transclude tiddler="John Perry" mode="block"/>|
[img[William Edward Ayrton|Images/William_Edward_Ayrton.jpg]]<br>
//William Edward Ayrton//
{{||$:/_ship_template}}
* <<slider "Torpedobootjager Witte de With 1935" Schepen243>>
{{||$:/_ship_template}}
* <<slider "Fregat Witte de With 2002" Schepen323>>
ex IJM167 (1920).<br>De trawler werd op 1 september 1939 gevorderd, aangepast en 18 dagen later als Boeienschip 1 in dienst gesteld. Op 14 mei 1940 viel het schip in Duitse handen en is tijdens de oorlog verloren gegaan.
{{||$:/_ship_template}}
* <<slider "Kanonneerboot Wodan 1877" Schepen091>>
{{||$:/_ship_template}}
* <<slider "Landingsvaartuig/bevoorrader Woendi 1950" Schepen261>>
ex USS LST-1034, verkocht aan Nederland.<br>
Overgenomen van de Dienst Van Scheepvaart door de marine op 13-10-1946 als transportschip / landingsvaartuig, naam WOENDI.<br>
1949 als moederschip voor mijnenvegers.<br>
1951-1952 als logementschip te Hollandia (Nieuw-Guinea).<br>
Uit dienst 12-08-52<br>
In eerste reserve als voorraadschip 22-01-55<br>
Tijdelijk logementschip 1963/64<br>
Van Sterkte afgevoerd 28-08-72.
In 1962 omgebouwd tot duikvaartuig.<br>
Periode 1986 - 1990 als communicatievaartuig te Curaçao.
{{||$:/_ship_template}}
* <<slider "Torpedoboten Wolf en Fret 1911" Schepen252>>
{{||$:/_ship_template}}
* <<slider "Fregat Wolf & haskotter Lammie 1974" Schepen225>>
!! Woods
!!! Clinton Edgar Woods (1863 - 1930)
De Woods Motor Vehicle Company werd opgericht in 1896 om elektrische auto's te bouwen. Het begin verliep slecht en vereiste in 1899 een nieuwe kapitaalinjectie; mogelijk de reden dat nog al eens 1899 als beginjaar genoemd wordt.<br>
In 1916 werd model #44 uitgebracht - een hybride auto - met een dynamotor (gecombineerde dynamo/elektrische motor) van 5-6 pk en een 1100 cc 4-cil. benzinemotor van 14 pk.
Bij snelheden tot 30 km/u deed alleen de elektromotor zijn werk. Daarboven kon de benzinemotor ingeschakeld worden m.b.v een elektrische koppeling.<br>
De Woods model #44 kon ook op beide motoren tegelijk rijden. Daarmee haalde de auto circa 56 km/u. Hij bood een gecombineerd voordeel: dankzij de elektromotor hoefde de auto niet aangeslingerd te worden en dankzij de benzinemotor had de Woods een grote actieradius.<br>
Tijdens het rijden op benzine konden de accu's opgeladen worden (de elektromotor werkte dan als dynamo).<br>
Eigenaardig is dat de auto niet achteruit kon rijden als de benzinemotor gebruikt werd. De achteruitversnelling werd elektrisch ingeschakeld met een pedaal.
Voorzover bekend bestaan er nog slechts twee (vier?) exemplaren van dit type auto; één staat in het Louwman museum te Den Haag.
<<<
Tot 1918 zijn er 600 exemplaren gebouwd. De Woods Dual Power werd commercieel gezien geen succes. Hij was te duur (1916: $ 2.650,-, bijna 4 x zo veel als een 1916 Ford Model T) en reed te langzaam in vergelijking met de conventionele benzine auto (~56 t.o.v. ~70 km/u).
<<<
{{||$:/_ship_template}}
* <<slider "Torpedoboot XVII 1880" Schepen255>>
!! Hulpvaartuigen volgens pennantnummer 'Y...'
<<<
In 1950 begonnen met Y + 3 cijfers. Omdat het aantal Y-vaartuigen te groot werd is in 1953 besloten over te gaan op een 4-cijferig Y-sein. Sommige van de 'omgenummerde' vaartuigen kregen wel administratief een 4-cijferig Y-sein toegewezen, maar werden, voordat dat effectief werd, al van de sterkte afgevoerd. Daardoor kunnen er hiaten zitten in die 4-cijferige Y-lijst.
<<<
|Ondersteuningsvaartuigen 'Y'|<|<|<|<|<|h
|# |Naam |Dienstperiode |Type |Registratie |Opmerkingen |h
|||||||
|||||||
|||||||
|||||||
|||||||
|Y828|| -1953 |aanlegvlot|RS102, A872, Y828, Y8581||
|||||||
|||||||
|Y861|||rescueboot|Y861|de kanariepiet (vanwege zijn gele kleur)|
|||||||
|||||||
|||||||
|Y8002|Sorido| 1949-1959|sleepboot|DVS1946/48?, T201, Con, A834, Y8002||
|Y8004|Dorus Rijkers| 1948- - 1968 |sleepboot/ijsbreker|Marinesleepboot nr. 1, RS01, A841, Y8004||
|Y8005|| 1937-? |sleepboot/verwarmingsvaartuig|Sleepdienst 1, Sleepdienst 2, RS01, A842, Y8005||
|Y8006|| 1937-1974+ |sleepboot/verwarmingsvaartuig|Sleepdienst II, Marine sleepdienst 3, RS03, A843, Y8006||
|||||||
|||||||
|Y8008|| 1939-1966 |sleepboot|MVP165, Sleepdienst 6, RS06, A846, Y8008||
|Y8009|Jenja| -1968 |sleepboot|MVD7, KM7, RS11, A851, Y8009||
|Y8010|| -1966 |sleepboot|Elly, KM8, RS12, A852, Y8010||
|Y8011|Coehoorn| 1914-1966 |sleepboot|M11, KM25, RS16, A856, Y8011||
|Y8012|| 1939-1966 |sleepboot|KM14, RS14, A854, Y8012||
|Y8013|| -1963 |bootje|KM23, RS15, A855, Y8013||
|Y8014|Jade| 1943-1967+ |sleepboot|Onderzeedienst 4, RS17, A857, Y8014||
|Y8015|| 1938-1968 |sleepboot|MCTV4, MVD9, Onderzeedienst 5, RS18, A858, Y8015||
|Y8016|Bambi| 1953-? |sleepboot/ijsbreker/brandweerboot|Y8016||
|Y8017|Dombo| 1957-? |sleepboot/ijsbreker|Y8017||
|Y8018|Breezand| 1989- |sleepboot|Y8018|Vervanger Bambi & Dombo|
|Y8019|| ?-1957 |sleepboot|Onderzeedienst 12, RS31, A864, Y8019||
|~|Balgzand| 1989?- |sleepboot|Y8019|Vervanger Bambi & Dombo|
|||||||
|Y8021|Volendam| ?-1966 |sleepboot|XWT1389, Volendam, KM26, RS26, A866, Y8021||
|Y8022|Figuas| 1942-1979 |sleepboot|Figuas, Gejo, MCTV5, KM4, RS27, A867, Y8022||
|||||||
|Y8024|Alta| - 1966 |sleepboot|Alta, MCTV2, RS30, A870, Y8024||
|Y8025|Zwerver| 1924-1961 |sleepboot|Zwerver, 201, RS29, A876, Y8025||
|||||||
|Y8027|Antonie II| 1938-1968 |sleepboot|Antonie II, Karla, Hoek, RS08, A848, Y8027||
|Y8028|Eems| 1938-1990 |sleepboot|Eems, Granville, MCTV3, KM15, RS28, A868, Y8028||
|Y8029|| -1954 |sleepboot|MVP426, Onderzeedienst 6, RS19, A859, Y8029||
|||||||
|Y8031|Quatrieme| 1940-1968 |sleepboot|Quatrieme, RS09, A849, Y8031||
|Y8032|Sija| 1939-1968 |sleepboot|Sija, Marva, KM5, RS10, A850, Y8032||
|||||||
|||||||
|Y8037|Berkel| 1956-1987 |sleepboot|Y8037||
|Y8038|Dintel| 1957-1988 |sleepboot|Y8038||
|Y8039|Dommel| 1957-1987 |sleepboot|Y8039||
|Y8040|IJssel| 1957-1988 |sleepboot|Y8040||
|||||||
|||||||
|||||||
|||||||
|||||||
|Y8055|Schelde| 1987- |sleepboot|Y8055||
|Y8056|Wierbalg| 1987- |sleepboot|Y8056||
|Y8057|Malzwin| 1986- |sleepboot|Y8057||
|Y8058|Zuidwal| 1986- |sleepboot|Y8058||
|Y8059|Westwal| 1986- |sleepboot|Y8059||
|||||||
|||||||
|Y8262|Paulina| 1918-1952+ |sleepboot/stoomafgiftevaartuig|Paulina, IV, M4, KM03, RS07, RS23, A847, Y8262|WWII: ZRD47, BSIX|
|||||||
|||||||
|Y8305|| 1948-1960 |sleepboot/verwarmingsvaartuig|sleepdienst IV, Sleepdienst 5, RS05, A845, Y8305||
|||||||
|||||||
|||||||
|Y8581|| -1953 |aanlegvlot|RS102, A872, Y828, Y8581||
|Y8582|| -1953 |aanlegvlot|RS103, A873, Y8582||
|||||||
|||||||
|Y8590|| 1936-? |sleepboot/verwarmingsboot|Sleepdienst III, Sleepdienst 4, RK23, RS04, A844, Y8590||
|||||||
|||||||
|||||||
In 1946 is het schip overgedragen aan de Nederlandse marine.<br>
Gebouwd met houten romp als mijnenveger voor magnetische en akoestische mijnen.
In 1947 is het schip overgedragen aan de Nederlandse marine.<br>
Gebouwd met houten romp als mijnenveger voor magnetische en akoestische mijnen.
Nog voor het uitbreken van de Eerste Wereldoorlog werden acht torpedoboten besteld van een groter type dan de G-klasse. De eerste vier bij de Duitse werf Vulkan te Stettin en de tweede serie van vier bij Nederlandse werven. Deze boten zouden de Z1 tot en met Z8 (= Zeer groot) worden. Bij het uitbreken van de Eerste Wereldoorlog werden de vier in Stettin in aanbouw zijnde torpedoboten in beslag genomen door de Duitse marine en afgebouwd als V105 tot en met V108. Als reactie op het wegvallen van deze vier schepen werden zij opnieuw besteld bij Nederlandse werven. Het gevolg hiervan was dat de Z1 tot en met Z4 later in dienst werden gesteld dan de Z5 tot en met Z8.
{{||$:/_ship_template}}
* <<slider "Torpedoboot Z1 ca. 1926" Schepen368>>
{{||$:/_ship_template}}
* <<slider "Torpedoboten Z3 en Z4 1917" Schepen040>>
* <<slider "Torpedoboot Z3 ca. 1937" Schepen110>>
{{||$:/_ship_template}}
* <<slider "Torpedoboten Z3 en Z4 1917" Schepen040>>
* <<slider "Torpedoboot Z4 1917" Schepen008>>
{{||$:/_ship_template}}
* <<slider "Torpedoboot Z5 1924" Schepen065>>
* <<slider "Torpedoboten Z5 & Z6 ca. 1928" Schepen018>>
* <<slider "Torpedoboten Z5 & Z6 1929" Schepen123>>
* <<slider "Patrouilleschip Z5 ca. 1936" Schepen367>>
In 1931 omgebouwd tot patrouilleschip (uiterlijke verschillen: doorgetrokken bak en 2 i.p.v. 3 schoorstenen).<br>1942-1945 in dienst bij Royal Navy als 'Blade'.
{{||$:/_ship_template}}
* <<slider "Torpedoboten Z5 & Z6 ca. 1928" Schepen018>>
* <<slider "Torpedoboten Z5 & Z6 1929" Schepen123>>
{{||$:/_ship_template}}
* <<slider "Torpedoboot Z7 ca. 1930" Schepen369>>
{{||$:/_ship_template}}
* <<slider "Torpedoboot Z 8 ca. 1928" Schepen090>>
{{||$:/_ship_template}}
* <<slider "Zeearend ca. 1960" Schepen336>>
Passagierschip (vanaf 1903) van de Batavierlijn te Rotterdam, gevorderd door de Koninklijke Marine (21-06-1940).<br>
In WWII gebruikt door de Royal Navy ('Western Isles') als stafschip/opleidingsschip onderzeebootbestrijding.<br>
Terug in dienst KM omgedoopt tot Zeearend als opleidingsschip onderzeebootbestrijding.<br>
Vanaf 1950 A892.
{{||$:/_ship_template}}
* <<slider "Opnemingsvaartuig Zeefakkel ca. 1960" Schepen216>>
De Zeefakkel is gebouwd als Rijksopnemingsvaartuig en in 1951 in dienst gesteld als ''Hr.Ms. Zeefakkel''. De taak van de Zeefakkel was zeekaarten maken van de Noordzee. Na ruim 21 jaar werd de Zeefakkel uitdienst gesteld als Rijksopnemingsvaartuig.<br>
Na groot onderhoud werd het schip in dienst gesteld als Rijksinstructievaartuig voor de adelborstopleiding van het Koninklijke Instituut voor de Marine in Den Helder, kortweg het KIM en de school voor scheepsonderofficieren.
> In 1980 en in 1995 is de Zeefakkel geheel gerenoveerd.
In 1998 werd er besloten de Zeefakkel te vervangen door een nieuwe instructievaartuig.<br>
In 1999 kwam de [[Van Kinsbergen (1999)]] in dienst en de Zeefakkel werd reserve schip tot 1 januari 2000. Daarna verliet de Zeefakkel Den Helder op weg naar haar nieuwe thuishaven Hellevoetsluis. Vanaf die periode doet het schip dienst als Opleidingschip voor het Zeekadetkorps Hellevoetsluis.
{{||$:/_ship_template}}
* <<slider "Patrouilleschip (schoener) Zeehond 1900" Schepen433>>
* <<slider "Patrouilleschip (schoener) Zeehond ca. 1900" Schepen361>>
* <<slider "Patrouilleschip (schoener) Zeehond 1909" Schepen434>>
De schoener Zeehond was een politievaartuig voor toezicht op de visserij.
* Politievaartuig: 3 masten, witte romp
* Van 1898 tot 1909 ook gebruikt als koninklijke jacht: 3 masten, witte romp en gele schoorsteen
* Vervolgens: 3 masten, zwarte romp
* Ca. 1910 sneuvelde de 3^^e^^ mast: 2 masten, zwarte romp.
{{||$:/_ship_template}}
* <<slider "Duikboot Zeehond (ex Sturgeon) ca. 1944" Schepen107>>
Britse Sturgeon, uitgeleend aan Nederland en als Zeehond in dienst.
{{||$:/_ship_template}}
* <<slider "Onderzeeboot Zeehond (ex Britse Tapir) 1953" Schepen108>>
Britse Tapir van 1948 - 1953 door de Nederlandse marine geleend van de Britse marine.
{{||$:/_ship_template}}
* <<slider "V.l.n.r. Cornelis Drebbel, Zeehond en Potvis 1971" Schepen366>>
* <<slider "Duikboot Zeehond 1988" Schepen330>>
{{||$:/_ship_template}}
* <<slider "Zeeland 1898" Schepen048>>
* <<slider "Zeeland ca. 1915" Schepen081>>
{{||$:/_ship_template}}
* <<slider "Patrouilleschip Zeeland 2014" Schepen181>>
{{||$:/_ship_template}}
* <<slider "Duikboot Zeeleeuw 2005" Schepen175>>
{{||$:/_ship_template}}
* <<slider "Torpedoboot Zeeslang ca. 1915" Schepen256>>
* <<slider "Torpedoboot Zeeslang ca. 1915" Schepen257>>
!! Diversen
<<tabs "[tag[Div_vliegtuig]sort[jaar]]">>
{{||$:/_ship_template}}
* <<slider "Mijnenjager Zierikzee ca. 2005" Schepen322>>
!!! Geen Zijner Majesteits
!!!! Duikvaartuigen
De vaartuigen van de Cerberusklasse hebben geen commandant. De gezagvoerder is een sergeant-majoor en is belast met de leiding over het schip. De schepen voeren geen oorlogswimpel en het predicaat 'Zijner Majesteits (Zr.Ms.)'.
!!!! Loodswezen etc.
De schepen van het Loodswezen, Betonning, Bebakening en Verlichting hebben niet het voorvoegsel Hr.Ms. gehad.
!!!! Sleepboten
De bemanning is burger personeel, in dienst bij Defensie. De aansturing en de dienstindeling geschiedt door het Havenkantoor.
Bij navraag is gebleken dat de kapitein zelf mag uitmaken welke kleur hij het schip geeft.<br>
Omdat de Gouwe de nieuwste sleepboot is van de Linge klasse en ook afwijkt in oa het motor vermogen heeft de kapitein besloten om een donkere kleur grijs te kiezen.
<hr>
Wanneer mag "Hr.Ms" gebruikt worden ?<br>
Bij diverse schepen van de KM wordt alleen de naam genoemd zonder "Hr.Ms." bv. de Hydra en de Nautilus.
Dat mag alleen wanneer er een officier het bevel voert. Aardige bijkomstigheid is dat internationaal gebruik (recht?) voorschrijft dat zo'n officier vermeld moet zijn in een officieel naamboek. De KM is in 2006 gestopt met het uitgeven van naamboeken dus is het slechts een kwestie van tijd voordat er hierdoor misschien problemen ontstaan. De duikvaartuigen hebben een SMJRODND of een AOOODND als gezagvoerder.
<hr>
{{Zijner/Harer Majesteits}}
!! Zijner/Harer Majesteits
Bron: [[Wikipedia|https://nl.wikipedia.org/wiki/Zijner_Majesteits]]
''Zijner Majesteits'', afgekort ''Zr.Ms.'', is het voorvoegsel dat aan de scheepsnaam van schepen van de Nederlandse Koninklijke Marine voorafgaat. Is het staatshoofd een koningin dan gebruikt men het voorvoegsel ''Harer Majesteits'', afgekort ''Hr.Ms.''.
In de Circulaire Zeemacht 1569cc van 1988 werd de spelling formeel vastgelegd.
De regeling bevat onder andere de volgende bepalingen:
* De aanduiding "Harer Majesteits" ("Hr.Ms.") mag uitsluitend voorafgaan aan de naam van een schip van de Koninklijke marine, waar aan die naam met goedkeuring van Hare Majesteit de Koningin is gegeven.
* Het betreft schepen van de Koninklijke marine die de wimpel voeren, wanneer zij in dienst zijn, onder het bevel van een officier of onderofficier van de Koninklijke marine staan en een militaire bemanning hebben.
* In officiële brieven, waarin (eenmaal of meermalen) de naam van een schip voorkomt, dat voldoet aan de hier gestelde voorwaarden, moet steeds de aanduiding "Hr.Ms." worden gebruikt, bijvoorbeeld "Hr.Ms. Scheveningen".
* In rapporten, plannen, naamlijsten van schepen en operatieorders, waarin meermalen de naam van een schip voorkomt, dat voldoet aan de gestelde voorwaarden, wordt de aanduiding "Hr.Ms." ten behoeve van de leesbaarheid weggelaten. De scheepsnamen worden alsdan vermeld zonder het lidwoord 'de' ervoor. De naam kan daarbij in hoofdletters worden geschreven, bijvoorbeeld "SCHEVENINGEN".
* Niet toegestaan is het gebruik van de aanduiding "Hr.Ms." vóór schepen van de Koninklijke marine in het algemeen of van een bepaald type. Derhalve is bijvoorbeeld niet toegestaan de aanduiding "Hr.Ms. onderzeeboten" of "Hr.Ms. onderzeeboot Zeehond". Correct is de aanduiding "(de) onderzeeboot Hr.Ms. Zeehond".
Op deze manier wordt aangegeven dat het schip behoort aan de koning(in), waarbij de staat in hem (haar) wordt gepersonifieerd.<br> Sleepboten en sommige kleine hulpvaartuigen (zoals het opleidingsschip Van Kinsbergen) ontberen het predicaat.
Internationaal wordt voor de schepen van de Nederlandse Marine het voorvoegsel ''HNLMS'' gebruikt: de afkorting van 'His (Her) Netherlands Majesty's Ship'.
Het schip krijgt zijn Koninklijke prefix pas op het moment van indienststelling: het wordt met alleen een naam gedoopt en in de tijd tussen de doop en de indienststelling wordt de naam zonder prefix gebezigd. Na de laatste uitdienststelling vervalt meteen ook de prefix (NB logement- en wachtschepen konden vroeger nog onder militair commando staan en hun prefix behouden, maar de tijd van logementschepen is voorbij). Zo mag bijvoorbeeld de Tonijn (de driecilinder onderzeeboot als museumschip van het Marinemuseum in Den Helder) niet langer de prefix voeren. In het verleden verloor het schip in periodes van tijdelijke uitdienststelling (voor onderhoud e.d.) ook telkens tijdelijk zijn prefix, maar tegenwoordig doet men dat anders en blijft de prefix van kracht.
<<tabs "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/_search_in_reg_field]]" "Zoek standard">>
!! Zoeken
<<tabs "Doorzoeken $:/_search_in_reg_field" "">>
\define lingo-base() $:/language/Search/
\define searchreg(field,for)
<$list filter="[!is[system]regexp:$field$[$for$]]">
</$list>
\end
<$linkcatcher to="$:/temp/advancedsearch">
<<lingo Standard/Hint>>
<div class="tc-search">
<$edit-text tiddler="$:/temp/advancedsearch" type="search" tag="input"/>
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
<$button class="tc-btn-invisible">
<$action-setfield $tiddler="$:/temp/advancedsearch" $field="text" $value=""/>
{{$:/core/images/close-button}}
</$button>
</$reveal>
</div>
</$linkcatcher>
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
<$list filter="[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem">
<$set name="searchTiddler" value="$:/temp/advancedsearch">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]" emptyMessage="""
<$list filter="[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]">
<$transclude/>
</$list>
""">
<$macrocall $name="searchreg" field="reg" for={{$:/temp/advancedsearch">
</$list>
</$set>
</$list>
</$reveal>
```
\define lingo-base() $:/language/Search/
<$linkcatcher to="$:/temp/advancedsearch">
<<lingo Standard/Hint>>
<div class="tc-search">
<$edit-text tiddler="$:/temp/advancedsearch" type="search" tag="input"/>
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
<$button class="tc-btn-invisible">
<$action-setfield $tiddler="$:/temp/advancedsearch" $field="text" $value=""/>
{{$:/core/images/close-button}}
</$button>
</$reveal>
</div>
</$linkcatcher>
<$reveal state="$:/temp/advancedsearch" type="nomatch" text="">
<$list filter="[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem">
<$set name="searchTiddler" value="$:/temp/advancedsearch">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]" emptyMessage="""
<$list filter="[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]">
<$transclude/>
</$list>
""">
<$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]" default={{$:/config/SearchResults/Default}}/>
</$list>
</$set>
</$list>
</$reveal>
```
!! Zoeken
Klikken op `Hulp »` > `Zoeken` opent de tiddler `Zoeken` (verschijnt dan als tab in de <<popup "navigatiebalk" "Navigatiebalk-image">>).
Hieronder wordt dit - ''werkende!'' - zoekvak getoond.<br>
Stel we willen informatie zoeken over `De Ruyter`.<br>
We tikken achtereenvolgens in `d`, `e`, `spatie`, `r`, `u`, ... en zien de lijst met resultaten steeds kleiner worden. We kunnen nu een relevante link aanklikken en de betreffende tiddler opent (met een tab in de navigatiebalk).
<<<
''N.B.:''
* Er is geen onderscheid tussen hoofdletters en kleine letters.
* De lijst is opgedeeld in 'Titel resultaten' en 'Alle resultaten'. In de 1^^e^^ lijst komt de zoekterm alleen in de titel voor; in de 2^^e^^ lijst komt de zoekterm in de titel en/of in de tekst van tiddlers voor.
* De zoekresultaten blijven in principe bewaard; wordt de 'Zoek' tiddler later opnieuw geopend via de navigatiebalk of via ''Hulp > Zoek'', dan bevat deze de laatste zoekopdracht en zoekresultaten.
** Door op het kruisje rechts van het zoekvak ({{$:/core/images/close-button}}) te klikken wordt de zoekterm verwijderd.
<<<
Hieronder - als demo - dezelfde mogelijkheid als via ''Hulp > Zoek''
---
@@background-color: #EEEEEE;padding:10px;
<div>
{{Zoek}}
</div>
@@
---
{{||$:/_ship_template}}
* <<slider "Mijnenveger Zomer 1972" Schepen456>>
{{||$:/_ship_template}}
* <<slider "Mijnenveger Zuiderdiep ca. 1953" Schepen455>>
Oorspronkelijk Britse BYMS 48 (in US gebouwd).<br>
{{YMS46}}<br>1957 - 1962 duikwerkschip.
{{||$:/_ship_template}}
* <<slider "Duikbootbevoorradingsschip Zuiderkruis ca. 1939" Schepen397>>
{{NI}} Gebouwd als vervanger van de oude kabellegger `Telegraaf (1905)`. Ook voorbestemd als hulpschip voor de Koninklijke Marine en voorzien van bewapening en een installatie om een drijvervliegtuig aan boord te nemen. Tevens gebruikt voor hydrografische opnemingstaken.<br>
In 1939 gemilitariseerd en verbouwd tot benzinetransport- en bevoorradingsschip ten behoeve van het Nederlandse eskader in Nederlands Oost-Indië.<br>
In februari 1942 kon de Zuiderkruis uitwijken naar Ceylon. Vanuit Ceylon bleef de Zuiderkruis haar taak als marinebevoorradingsschip uitvoeren en werd daarbij tevens ingezet als onderzeebootmoederschip. Van 1 september 1943 tot 1 april 1945 deed de Zuiderkruis dienst als victualieschip voor de Royal Navy. In 1945 keerde het schip terug in Nederlands Oost-Indië en werd overgedragen aan de Dienst van Scheepvaart. De Zuiderkruis werd vervolgens weer omgebouwd tot hulp-opnemingsvaartuig en deed als zodanig dienst tot 1949. Bij de soevereiniteitsoverdracht ging het schip naar de Indonesische marine die het schip in dienst stelde als s.s. Bimasakti.
{{||$:/_ship_template}}
* <<slider "Troepentransportschip Zuiderkruis ca. 1949" Schepen290>>
* <<slider "Emigrantenschip Zuiderkruis ca. 1956" Schepen289>>
* <<slider "Logementsschip Zuiderkruis ca. 1965" Schepen288>>
''Zuiderkruis'' ex Cranston Victory (VC2-S-AP3)<br>
Van 1947 tot 1950 in gebruik geweest als troepentransportschip (Nederlands-Indië, Nieuw-Guinea + Molukse militairen en hun gezinnen naar Nederland)<br>
In 1951 werd het schip omgebouwd tot emigrantenschip (Canada en Australië).<br>
In 1962 werd het schip omgebouwd tot logementsschip (A853) voor de Koninklijke Marine in Den Helder.
{{||$:/_ship_template}}
* <<slider "Bevoorradingsschip Zuiderkruis ca. 1990" Schepen214>>
* <<slider "Bevoorradingsschip Zuiderkruis 1997" Schepen213>>
* <<slider "Bevoorradingsschip Zuiderkruis 2007" Schepen196>>
{{||$:/_ship_template}}
* <<slider "Duikboten Zwaardvis en Tijgerhaai ca. 1975" Schepen174>>
{{||$:/_ship_template}}
* <<slider "Duikboot Zwaardvis ca. 1956" Schepen341>>
ex-Britse Talent. In 1951 hernoemd in Zwaardvis, conform de nieuwe spellingwijze.
ex IJM 94, Zwarte Zee (1899).<br>De trawler werd in 1940 gevorderd en in Engeland omgebouwd tot hulpmijnenveger ''Zwarte zee''. Op 17 april 1941 werd het schip gebombardeerd buiten Milford Haven waarbij één van de bommen op dek viel. Het projectiel ontplofte niet en kon door de bemanningsleden overboord gezet worden. Door near misses werd het schip toch dermate beschadigd dat het in reparatie moest. Na de herstellingsperiode werd hij herdoopt in ''IJmuiden'' om naamsverwarring met de zeesleper Zwarte Zee te voorkomen. Op 27 september 1942 werd het schip uit dienst gesteld en overgedragen aan de Royal Navy. In 1946 werd het teruggegeven aan de eigenaar.