Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

Also see [[AdvancedOptions]]
<div class='header' role='banner' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='mainMenu' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox where print preview displays the noscript content */
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
|''Description:''|Moves the sidebar to the backstage, as suggested at|
|''CodeRepository:''|n/a |
|''Comments:''|Please make comments at |
|''License''|[[BSD License|]] |


if(!version.extensions.BackstageSidebarPlugin) {
version.extensions.BackstageSidebarPlugin = {installed:true};

config.tasks.sidebar = {
	text: "sidebar",
	tooltip: "sidebar options",
	content: "<<tiddler SideBarOptions>><<tiddler SideBarTabs>>"

config.macros.BackstageSidebarPlugin = {

config.macros.BackstageSidebarPlugin.init = function() {
	var tiddler = this.tiddler;

} //# end of 'install only once'


#sidebar {

!(end of Stylesheet)


a [int] ah!  
adres [e] address  
adulte [e] adult  
afrika [e] Africa  
afrikai [i] African  
agres [e] agression (assault)  
ah [int] argh!  
aha [a] understand (realize)  
ai [int] alas! (ouch!)  
aine [e] mirror  
ais [e] ice  
aisi [i] icy  
ajil [i] agile  
ajo [o] today  
aka [e] sibling (brother or sister)  
akse [e] axis  
akta [a] act (play a role)  
aktar [e] actor (actress)  
akte [e] act (scene)  
alah [e] Allah  
alkol [e] alcohol  
alkoli [i] alcoholic  
almari [e] cabinet (cupboard)  
almas [e] diamond  
alter [i] other  
altera [a] change (alter)  
alu [e] potato  
ama [conj] but  
amen [e] agreement (amen)  
amena [a] affirm (agree, concur)  
amerika [e] America (continent)  
amerikai [i] American  
amor [e] love  
amper [e] ampere  
amuk [e] rage (fury)  
analis [e] analysis  
analisa [a] analyse  
anima [a] animate  
anime [e] animation (cartoon)  
anjil [e] gospel  
anma [e] spirit (soul)  
antena [e] antenna  
anus [e] anus  
anusi [i] anal  
ara [e] saw tool  
arabi [i] Arabic  
aranje [e] orange (fruit)  
aranji [i] orange (orange-colored)  
arbuz [e] watermelon  
arena [e] arena (stadium)  
arhentina [e] Argentina  
armia [e] army  
arte [e] art  
artar [e] artist  
asle [e] origin  
asli [i] original  
asan [e] posture (asana)  
asia [e] Asia  
asiai [i] Asian  
asket [e] ascetic  
asma [e] asthma  
aspirin [e] aspirin  
ata [e] flour  
atak [e] attack  
atom [e] atom  
auda [a] hear (listen)  
australia [e] Australia  
awar [e] damage (wreck)  
ayiti [e] Haiti  


bada [a] follow (come after)  
bade [e] consequence (follow-up)  
badala [a] exchange (swap)  
badam [e] almond  
badan [e] body  
badani [i] bodily (corporal)  
badawi [i] bedouin (nomadic)  
bagaje [e] luggage (baggage)  
bal [i] strong  
bale [e] force (strength)  
baldi [e] bucket  
balkon [e] balcony (porch)  
balu [e] sand  
bama [e] Myanmar (Burma)  
bambu [e] bamboo  
ban [e] child (offspring)  
ban da law [e] parents  
bana [a] build (construct)  
banana [e] banana  
banda [a] bind  
bande [e] band (bandage)  
bandera [e] flag (banner)  
bandur [e] prisoner (jailbird)  
bandur kan [e] prison  
bangla [e] Bangladesh (Bengal)  
banka [a] save (deposit, bank)  
banya [a] bathe  
banye [e] bath  
banya kamer [e] bathroom  
bar [e] bar (pub)  
barat [e] India  
barbar [i] barbarian  
barda [e] beard  
barka [a] congratulate  
baru [e] bear  
barud [e] gunpowder  
bas [i] enough (sufficient)  
basen [e] pool (basin)  
basket [e] basket  
bat [num] eight (8)  
bata [e] duck  
batakrot [e] platypus  
batata [e] yam (sweet potato)  
bateri [e] battery  
batu [e] stone  
bax [e] language  
bax lojia [e] linguistics  
baxa [a] speak (communicate)  
bay [i] white  
bazar [e] market (bazaar)  
baze [e] base (foundation)  
bazi [i] basic  
be [pr] without  
bebe [e] baby (darling)  
bed [e] bed  
bei [a] undergo (verb of the passive voice)  
beka [a] bake  
bekar [e] baker  
bekaria [e] bakery  
belarus [e] Belarus  
belgi [e] Belgium  
belize [e] Belize  
benci [e] bench  
beng [i] sick (ill)  
benzin [e] gasoline (petrol)  
beranda [e] veranda (porch)  
beret [e] beret  
beria [e] wolf  
bet [e] house  
beton [e] concrete (material with cement)  
bi [pr] with (by)  
bi no [pr] without  
bi tem de [pr] about (concerning)  
bi yang de [pr] like (in the style of)  
biblia [e] Bible  
bin [e] pot (bin)  
bir [e] beer  
bis [e] kiss  
biskut [e] biscuit (cookie)  
bizar [i] weird (strange)  
bizi [i] busy (occupied)  
biznes [e] business (commercial activity)  
biznes jen [e] businessperson (businessman)  
bobo [e] fool (idiot)  
boikot [e] boycott  
boka [e] mouth  
bola [e] ball  
bolgaria [e] Bulgaria  
bolivia [e] Bolivia  
bombe [e] bomb  
bon [i] good  
bora [a] drill (bore)  
bot [e] boat (ship)  
botol [e] bottle  
boton [e] button  
brazil [e] Brazil  
britan [e] Britain (UK)  
brox [e] brush  
bud [e] realization (awareness, enlightenment, bodhi)  
bud din [e] Buddhism  
buda [a] realize (become aware of)  
budi [i] aware (enlightened)  
budan [e] Mercury  
bujet [e] budget  
buk [e] book  
bula [a] forget  
bunduk [e] rifle  
bus [e] bus  
buton [e] key (push-button)  
buton paban [e] keyboard    


ca [e] tea  
ca wan [e] tea bowl  
cabi [e] key  
cabuk [e] whip (lash)  
cakra [e] wheel  
caku [e] knife  
camca [e] spoon  
campion [e] champion  
candi [e] silver  
cang [o] often (frequently)  
cans [e] opportunity (chance)  
cap [e] press (stamp)  
capa [a] press (imprint)  
car [num] four (4)  
carnir [e] hinge (pivot)  
cat [e] chat (informal conversation)  
cat kamer [e] chat room  
catar [e] umbrella (parasol)  
caye [e] shadow  
ceka [a] check (to examine)  
celo [e] cello  
centi [num] centi- (per cent)  
ceska [e] Czech  
cile [e] Chile  
cili [e] bell pepper 
cimpanzi [e] chimpanzee  
cincila [e] chinchilla  
cing [a] ask (request; please)  
cing lay [fr] invite  
cing lay in! [fr] Come in!  
cip [e] Albania  
cis [e] cheese  
cita [a] quote  
coda [a] fuck  
cok [i] many (much)  
cokolat [e] chocolate  
corab [e] sock (stocking)  
cuka [e] vinegar  
cun [e] choice (selection)  
cuna [a] choose (select)  
cupa [a] suck  
cur [e] theft  
cura [a] steal  
curar [e] thief  
cut [e] exit (leaving)  
cut mun [e] exit door  
cuta [a] leave (go out, exit)  


da [pr] own (particle of possession)  
dado [e] die (dice)  
daftar [e] register  
daixi [e] ambassador
daixi kan [e] embassy
dama [e] checkers  
dane [e] grain (seed)  
danka [a] thank  
danke [e] thanks (thank you)  
danmark [e] Denmark  
dante [e] tooth  
dante brox [e] tooth brush  
dante doktar [e] dentist  
dap [e] answer (response)  
dapa [a] respond (give an answer)  
dar [a] give  
dare [e] gift  
darba [a] strike (punch)  
daria [e] sea (ocean)  
darme [e] dharma (piety)  
darmi [i] pious  
darsa [a] learn (study)  
darse [e] lesson  
darse ban [e] student (pupil)  
darse guru [e] teacher  
darse kan [e] school (institution)  
darzar [e] tailor  
dau [e] way (road)  
dawa [e] drug (medicine)  
dawa kan [e] drugstore (pharmacy)  
day [i] big  
debat [e] argument (debate)  
deci [num] deci-  
dem [e] point (spot)  
demokrati [i] democratic  
demokratia [e] democracy  
demon [e] demon  
den [e] day (daytime)  
den salam [fr] Good day  
den kane [e] lunch  
denga [a] wait  
des [num] ten (10)  
desen [e] drawing (picture)  
detal [e] detail  
dew [e] god  
dew lojia [e] theology  
dewi [i] divine (godly)  
dewi sage [e] myth (divine story)  
deya [e] village  
dian [e] attention (focus)  
din [e] religion  
din guru [e] priest (cleric)  
ding [e] nail (spike)  
diske [e] disc (disk)  
do [num] two (2)  
doic [e] German  
doka [a] read  
dokta [a] heal (cure)  
doktar [e] doctor (physician, healer)  
dolar [e] dollar  
dom [e] home (residence)  
doma [a] live (dwell, reside)  
dominika [e] Dominican Republic  
domino [e] dominoes  
dong [e] east  
doste [e] friend  
dosti [i] friendly  
dostia [e] friendship  
dou [e] bean or pea (legume)  
dox [e] fault (guilt)  
doze [e] portion (dose)  
drama [e] drama  
du [pr] of (particle of possession)  
duan [i] short (not long)  
duk [e] grief (sorrow)  
duka [a] grieve  
dul [e] dust  
dum [e] tail  
duman [e] smoke  
duna [e] dune  
dunia [e] world  
dunia bax [e] world language  
dur [e] duration  
dura [a] last (take time)  
duwa [a] pray  
duwe [e] prayer  
dux [e] shower  
dzayer [e] Algeria  


eglis [e] church  
eho [e] echo  
ekran [e] screen  
ekuador [e] Ecuador  
elektre [e] electricity  
elektron [e] electron  
enda [a] go  
energi [e] energy  
englix [i] English  
eni [i] any (no matter which)  
eris [e] Eris (dwarf planet)  
eritra [e] Erithrea  
espanya [e] Spain  
esti [e] Estonia  
eurasia [e] Eurasia  
euro [e] euro  
europa [e] Europe  
europai [i] European  
europai unia [e] European Union (EU)  


faide [e] use (utility, benefit)  
faidi [i] useful (beneficial)  
fain [i] fine (delicate)  
faktar [e] factor (agent, actor)  
famil [e] family  
famil nam [e] surname (family name)  
fan [e] fun (amusement)  
fani [i] funny (amusing)  
fanat [e] fan (fanatic)  
fantas [e] fantasy (imagination)  
fantasa [a] fantasize  
fantasi [i] fantastic (imaginary)  
fantom [e] ghost (fantom)  
fanus [e] lantern  
far [i] far  
farsi [i] Persian (Farsi)  
faru [e] rhinoceros  
fas [e] surface  
fasin [e] fascination  
faxe [e] bundle  
faxisme [e] fascism  
faxiste [e] fascist  
fay [e] fire  
feber [e] fiever  
fek [e] feces (poop)  
feka [a] defecate  
fem [i] female  
fem ban [e] daughter  
fem raje [e] queen  
fen [e] part (fraction)  
fena [a] divide (to partition)  
fer [e] iron  
festa [a] celebrate (party)  
feste [e] party (festival)  
fet [e] fat (grease)  
feti [i] fatty (greasy)  
feya [a] fly  
figur [e] figure (representation)  
fiksa [a] fix (attach)  
file [e] line (row)  
filme [e] film  
filsofar [e] philosopher  
filsofi [i] philosophic  
filsofia [e] philosophy  
filtar [e] filter  
fin [e] end  
fina [a] finish (put an end to)  
fini [i] finished  
final [i] last (final)  
finger [e] finger (toe)  
finger wen [e] finger ring  
fizik [e] physique  
fizikar [e] physicist  
fizikia [e] physics  
fobe [e] fear (phobia)  
fokus [e] focus (concentration)  
fokusa [a] concentrate  
fong [e] wind  
fonga [a] blow  
forke [e] fork  
forme [e] form (shape)  
forum [e] forum  
fos [e] pit (excavation)  
fosa [a] dig (excavate)  
fosfor [e] phosphorus  
foto [e] photograph  
frans [e] France  
fu [int] bah! (yuck!)  
fubu [e] belly (abdomen)  
fuk [e] clothing  
fuka [a] wear clothes  
ful [i] full  
fula [a] fill  
funca [a] function (work)  
funga [a] close (shut)  
fungi [i] closed (shut)  
fungula [a] open  
futur [i] future  


gabar [e] grave (tomb)  
gaci [e] value  
gaja [e] elephant  
galeria [e] gallery (exhibition hall)  
gamel [e] camel  
gama [a] marry  
gamia [e] marriage (matrimony)  
gan [e] song  
gana [a] sing  
gang [o] just (recently)  
ganga [e] Ganges  
ganja [e] cannabis  
gar [e] car (cart)  
garam [i] warm  
garante [e] guarantee  
gardin [e] garden  
gas [e] gas  
gaun [e] dress (gown)  
gaw [i] high  
gayana [e] Guyana  
gaze [e] gauze  
gazel [e] gazelle  
gazet [e] magazine (journal, gazette)  
gem [e] game  
gema [a] play a game  
gemar [e] player (gamer)  
gen [e] root  
geta [a] get (receive, obtain, take)  
gida [a] drive  
giga [num] billion (giga-)  
gim [e] gold  
ging [e] respect (esteem)  
gitar [e] guitar  
glas [e] glass  
gojia [e] country (land)  
gol [e] goal  
gola [e] throat (gullet)  
gom [e] rubber  
gon [o] past (former, gone)  
goro [e] pig  
goro nama [e] pork  
goton [e] cotton  
graf [e] depiction (graph)  
grafa [a] depict (describe, illustrate)  
grafi [i] graphic (descriptive)  
gram [e] gram  
gras [e] grass  
grimas [e] grimace  
grom [e] thunder (roaring)  
grup [e] group  
gua [e] cave  
guang [e] light (illumination)  
guanxe [e] connection (relationship)  
guatemala [e] Guatemala  
gubu [e] hippopotamus  
gun [e] quality (attribute, property, characteristic, -ness)  
gung fu [e] kung fu  
guru [e] guru (mentor)  
gusta [a] taste (sense flavor)  
guste [e] taste (flavor)  
gustu ka [a] taste like  
gut [e] bone  


haba [a] have  
habu [u] belong  
haber [e] news  
haber gazet [e] newspaper (gazette)  
haha [int] laugh  
hak [e] right (justification, privilege)  
hakim [e] judgment (sentence)  
hakim guru [e] judge (referee)  
hali [i] empty  
halif [e] caliph  
halo [int] hello (hi)  
halos [e] halo  
hamak [e] hammock  
hamar [e] hammer  
hamir [e] yeast  
hanguk [e] South Korea  
haos [e] chaos (disorder, turmoil)  
harab [i] bad (ruined, spoiled)  
harmoni [i] harmonius  
harmonia [e] harmony  
has [i] special (distinct)  
hat [e] hand  
hata [o] even (intensifier)  
hatar [e] danger (peril)  
hatari [i] dangerous  
hawa [e] air  
hay [o] still (yet)  
hayda [a] let's  
hazar [e] hazard  
hazari [i] random  
hazin [e] treasure (treasury)  
he [int] huh? (pardon?)  
helen [e] Greek (Hellenic)  
helmet [e] helmet  
hema [e] tent  
hen [e] hate  
hero [e] hero  
heroi [i] heroic  
hewan [e] animal  
hibride [e] hybrid (mongrel)  
hima [e] snow  
hima rose [e] frost  
himalia [e] Himalayas  
hindu [e] Hindu  
hisab [e] calculation (arithmetic, computation)  
hisaba [a] calculate  
histor [e] history (story)  
historar [e] historian  
historia [e] history (study of history)  
hiyar [e] cucumber  
hobe [e] hobby  
hoke [e] hockey  
hon [num] hundred  
honduras [e] Honduras  
hor [e] hour  
hormon [e] hormone  
horvat [e] Croatia  
hotel [e] hotel  
hua [e] flower  
hua bin [e] vase (flower pot)  
huli [e] fox  
humus [e] chickpea  
humus sos [e] hummus  
hura [a] cheer (hooray)  


i [conj] and  
ibri [i] Hebrew  
idea [e] idea  
ideal [e] ideal (optimal)  
idealisme [e] idealisme  
igen [e] opinion (view)  
iha [e] donkey (ass)  
ikan [e] fish  
impera [a] reign (rule as an emperor)  
imperar [e] emperor  
imperia [e] empire  
in [e] inside (interior)  
indonesia [e] Indonesia  
informa [a] inform (communicate)  
informe [e] information  
ingay [a] should (ought) 
injenar [e] engineer  
inji [e] ginger  
inspira [a] inspire (inspiration)  
inter [e] between  
interes [e] interest (interesting)  
inxala [a] hope (wish)  
irak [e] Iraq  
iran [e] Iran  
islam [e] Islam  
islami [i] Islamic  
island [e] Iceland  
israel [e] Israel  
italia [e] Italy  
itiopia [e] Ethiopia  
izi [i] easy  


ja [o] already (done)  
jadi [conj] if (suppose, assume)  
jaket [e] jacket  
jala [a] burn (cause to burn)  
jalu [a] burn (be burned)  
jama [a] collect (gather, bring together)  
jami [i] collective  
jamia [e] collection (congregation)  
jamula [a] disperse  
jameika [e] Jamaica  
jan [a] know
jane [e] knowledge  
jani [i] known  
janela [e] window  
jang [e] fight (war)  
jangar [e] warrior (fighter)  
jangal [e] forest (jungle)  
janu [e] knee  
jara [e] jug (jar)  
jaz [e] jazz  
jeb [e] pocket  
jele [e] gel (jelly)  
jelos [i] jealous  
jen [e] person (people)  
jenar [e] parent  
jene [e] birth  
jene den [e] birthday  
jena [a] give birth (procreate, generate)  
jenu [a] be born  
jentil [i] kind (nice, gentle)  
jenxen [e] ginseng  
jeste [e] gesture  
jiju [e] spider  
jik [i] straight  
jika [a] straighten  
jin [i] near (close)  
jiraf [e] giraffe  
jiwa [a] live  
jiwe [e] life  
jiwe lojia [e] biology (study of life)  
joga [a] play (have fun)  
jok [e] joke  
jokar [e] joker  
jong [e] species  
jowan [i] young  
jowan fem [e] girl  
jowan man [e] boy  
judo [e] judo  
jul [e] joule (J)  
jumle [e] sentence (phrase)  
jungo [e] China  
jup [e] skirt  
jus [e] juice  
juxa [a] inject  


ka [pr] like (as, as if, than)  
kabau [e] water buffalo  
kabil [i] able (capable)  
kabila [e] tribe  
kabin [e] cabin (booth)  
kaca [a] catch (to hunt)  
kafas [e] cage  
kafe [e] coffee  
kafe kan [e] cafe (coffee shop)  
kafe kop [e] coffee cup  
kafi [i] brown (coffee-colored)  
kak [e] excrement (shit)  
kaka [a] defecate (shit)  
kakau [e] cocoa  
kal [i] black  
kalam [e] pen  
kalsium [e] calcium (Ca)  
kamer [e] room (chamber)  
kamer tal [e] floor  
kambudia [e] Cambodia  
kamera [e] camera  
kamis [e] shirt  
kamp [e] camp  
kampar [e] camper  
kan [e] workshop (place for...)  
kana [a] consume (eat or drink)  
kane [e] food (meal)  
kane kamer [e] dining room  
kanada [e] Canada  
kanal [e] channel  
kandi [e] candy (sweets)  
kanguru [e] cangaroo  
kanun [e] law  
kap [e] cover (covering)  
kapa [a] cover (conceal)  
kapula [a] uncover (reveal)  
kapitan [e] captain  
kaput [i] broken (out of order)  
kar [e] deed (work)  
kara [a] do (make, act)  
karia [e] occupation (career)  
karaoke [e] karaoke  
karate [e] karate  
karbon [e] coal (carbon)
kari [e] curry  
karot [e] carrot  
karta [e] card  
kasa [e] case (container)  
kastan [e] chestnut  
kata [a] cut  
katalunya [e] Catalonia  
kawayi [i] cute  
kaxa [e] porridge  
kay [i] open (not closed)  
kaya [a] open  
kaixa [a] begin (commence)  
kazu [e] event (case, instance)  
ke [pn] what?  
ke yang? [fr] how?  
kecap [e] ketchup  
keci [i] polite  
kek [e] cake  
kelele [e] noise  
kemet [e] Ancient Egypt (Kemet)  
ken [a] can (know, be able)  
kene [e] ability (skill)  
kenar [e] border (edge)  
kenya [e] Kenya  
kerub [e] cherub  
ketel [e] kettle  
kexo [o] tomorrow  
kia [a] ask (question)  
kilo [num] thousand (kilo-)  
kilo gram [e] kilogram (kg)  
kimi [i] chemical  
kimia [e] chemistry  
kina [a] move (transfer, change place)  
kine [e] movement  
kini [i] kinetic  
kioske [e] kiosk  
kira [a] rent (hire)  
kire [e] rent  
kirisa [a] rent out (let, lease)  
kirat [e] carat  
kismat [e] fate (destiny)  
kitab [e] writing (text)  
kitaba [a] write  
kitab kan [e] library  
kitab maxin [e] typewriter  
kiwi [e] kiwi fruit  
klar [i] clear (not obscured)  
klas [e] class (category)  
klasa [a] classify (categorize)  
klub [e] club  
kod [e] code (cipher)  
koda [a] encode  
kok [e] chicken  
koko [e] coco  
kolera [e] cholera  
kolombia [e] Colombia  
kolonia [e] colony (settlemen)  
kolun [e] column (pillar)  
koma [e] comma  
komal [i] soft  
komik [i] comical (funny)  
kompania [e] company (corporation)  
komputa [a] compute (to process data)  
komputar [e] computer  
komun [e] common (shared)  
komunisme [e] communism  
komuniste [e] communist  
kona [e] corner (angle)  
koncung [e] insect  
kong [e] hole  
kongo [e] Congo  
konsel [e] advice (counsel)  
konson [e] consonant  
kontinu [a] continue (resume)  
konus [e] cone  
kop [e] cup  
kopia [a] copy  
korne [e] horn  
kor [e] choir (chorus)  
kos [e] cough  
kosmos [e] space (cosmos, universe)  
kosta [a] cost  
koste [e] cost (price)  
kostarika [e] Costa Rica  
kot [e] coat  
koz [e] reason (cause)  
koza [a] cause  
krem [e] cream  
kriste [e] Christ  
kristi [i] Christian  
kristia [e] Christianity (Christendom)  
krita [a] cry (shout)  
krot [e] mole (burrowing animal)  
krus [e] cross  
kuan [i] wide  
kuang [e] mineral (ore)  
kuang su [e] mineral water  
kuba [e] Cuba  
kuka [a] cook (prepare food)  
kukar [e] cook (chef)  
kuke kamer [e] kitchen  
kul [i] cool  
kultur [e] culture  
kupa [e] dome (vault)  
kuper [e] copper  
kupon [e] coupon  
kura [a] care (cure)  
kuran [e] Quran (Koran)  
kursi [e] chair  
kurve [e] curve (bend)  
kurvi [i] curvy (curved)  
kusen [e] cushion (pillow)  


laba [e] horn (bugle)  
labia [e] lip  
lada [a] load (to charge)  
laya [a] come  
lay salam [fr] welcome  
laji [e] rubbish (trash)  
laka [e] lacquer (varnish)  
lala [a] lie (lie down)  
lampa [e] lamp  
lanca [a] throw (launch)  
lanka [e] Sri Lanka  
lao [e] Laos  
larwa [e] larva (maggot, caterpillar)  
lastik [i] elastic  
lasun [e] garlic  
lat [i] pungent (spicy, hot)  
lat cili [e] chili pepper  
latif [i] nice (pleasant, lovely)  
latvia [e] Latvia  
law [i] old (not young)  
laxa [a] release (let, let go)  
lenxa [a] practice (to exercise)  
leng [i] cold  
leter [e] letter (message)  
letis [e] lettuce  
libel [e] dragonfly  
liber [i] free (unchained)  
libera [a] free (liberate)  
lici [e] lychee (litchi)  
lida [a] lead (direct)  
lidar [e] leader (director)  
lietuva [e] Lithuania  
liga [a] connect (join, link)  
lige [e] joint (league)  
lilak [e] lilac  
lili [e] lily  
lim [num] five (5)  
limfa [e] lymph  
limit [e] limit (boundary)  
limun [e] lemon  
linye [e] line (stripe)  
lis [i] smooth  
liste [e] list (listing)  
lit [i] little (small)  
lit kane [e] snack  
liter [e] liter (litre)  
lixu [e] squirrel  
lobak [e] radish  
loga [a] say  
loge [e] word  
loge liste [e] word list  
loja [a] research (to study)  
lojia [e] science  
lok [e] place (location)  
loki [i] local  
long [i] long  
longa [a] lengthen (prolong)  
longe [e] length  
losi [e] screw  
lubnan [e] Lebanon  
lulu [e] pearl  
luna [e] moon  
lusun [e] asparagus  
luta [a] rob (loot)  
luza [a] lose (fail to win)  
luzar [e] loser  


ma [e] mother  
maca [a] compete (have a match)  
mace [e] match (contest)  
made [e] matter (substance)  
madi [i] material  
madyar [e] Hungary  
maf [e] sorry (pardon)  
mafan [e] trouble (disturbance, bother)  
mafana [a] bother  
magi [i] magical  
magar [e] magician (sorcerer)  
magia [e] magic  
magnet [e] magnet  
magneti [i] magnetic  
maju [e] harness  
makala [e] article (writing)  
makan [e] butter  
makas [e] scissors  
makedonia [e] Macedonia  
mal [e] property (possession)  
mali [i] financial  
malaisia [e] Malaysia  
malaria [e] malaria  
mam [e] breast (boob)  
mama [e] mother (mom)  
mamal [e] mammal  
man [e] male  
man ban [e] son  
man raje [e] king  
mana [a] mean (signify)  
mane [e] meaning (signification)  
manga [e] comic (cartoon)  
mango [e] mango  
mangus [e] mangosteen  
manioka [e] cassava (manioc)  
mantu [e] dumpling  
manux [e] human being  
manuxia [e] mankind (humanity)  
mar [e] time (occasion)  
maraton [e] marathon  
marca [a] walk (march)  
margarin [e] margarine  
marka [a] mark (leave a mark)  
marke [e] mark (trace)  
marmar [e] marble  
marsi [e] Mars  
marta [a] kill  
martar [e] killer  
marte [e] death  
marti [i] dead  
martu [a] die  
martur [e] victim of killing (also: martyr)  
mas [e] mass (dough, lump)  
masa [i] knead (give massage)  
masaje [e] massage  
masala [e] issue  
maske [e] mask (camouflage)  
matras [e] mattress  
matur [i] mature (ripe, adult)  
matur fem [e] woman (adult female)  
matur man [e] man (adult male)  
max [o] more  
max ka bas [o] too much  
maxi [i] additional  
maxim [o] most (maximally)  
maximi [i] maximal  
maxin [e] machine  
mau [e] cat  
maidan [e] square (plaza)  
mais [e] corn (maize)  
may [e] liquid  
maya [a] melt (liquidize)  
mayu [u] melt (get molten)  
medalia [e] medallion (medal)  
mede [e] help (aid, assistance)  
meda [a] help (assist)
medita [a] meditate (ponder)  
medu [e] honey  
mega [num] million (mega-)  
megam [e] cloud  
mehiko [e] Mexico  
mei [e] every (each)  
mei jen [e] everybody (everyone)  
mei xe [e] everything  
melodi [i] melodious (melodic)  
melodia [e] melody  
memba [a] participate  
membar [e] member (participant)  
meme [e] sheep  
memor [e] memory  
memora [a] remember  
men [e] bunch (collection)  
mes [e] month  
mes 1 (mes un) [e] January  
mes 2 (mes du) [e] February  
mes 3 (mes sam) [e] March  
mes 4 (mes car) [e] April  
mes 5 (mes lim) [e] May  
mes 6 (mes sis) [e] June  
mes 7 (mes set) [e] July  
mes 8 (mes bat) [e] August  
mes 9 (mes noi) [e] September  
mes 10 (mes des) [e] October  
mes 11 (mes des un) [e] November  
mes 12 (mes des du) [e] December  
mesi [e] messiah (Christ)  
metal [e] metal  
metar [e] meter  
metod [e] method  
meza [e] table  
mi [pr] I (me)  
mi da [pr] my  
mi da law [e] my parents  
micin [e] MSG (monosodium glutamate)  
mien [e] noodle  
midi [i] mean (medium, average)  
midia [e] media  
migan [e] mandarin orange  
mikro [num] micro-  
mili [num] milli-  
milke [e] milk  
mimen [pn] we  
min [o] less  
min ka bas [o] too little  
minara [e] tower  
ming [i] bright (radiant)  
mini [i] lesser (mini-)  
minim [o] least (minimally)  
minimi [i] minimal  
minimalisme [e] minimalism  
ministar [e] minister (politician)  
ministaria [e] ministry  
minus [o] except (minus)  
minut [e] minute  
misal [e] example  
miskin [i] poor (miserable)  
misri [e] Egypt  
mit [e] meeting (gathering)  
mita [a] meet  
mode [e] fashion (trend)  
mode nik [e] fashionista  
model [e] model (design)  
mogu [e] mushroom (fungus)  
mola [a] grind (grind in mill)  
molar [e] miller  
moli [e] jasmine  
mongol [e] Mongolia  
monstar [e] monster  
moral [e] morality (ethics)  
mos [e] moss  
mosim [e] season  
moskit [e] mosquito  
motor [e] engine (motor)  
mudan [e] peony  
muhim [i] important  
muka [e] face  
mum [e] wax  
mumia [e] mummy  
mumu [e] cow  
mumu nama [e] beef  
mun [e] door (gate)  
mungus [e] mongoose  
munkin [o] possibly (maybe)  
mur [e] wall  
mus [u] must  
musa [a] coerce (force, compel)  
muse [e] coercion  
musik [e] music  
musik nik [e] music fan  
musika [a] play music  
musikar [e] musician  
muskul [e] muscle  
muxing [e] Jupiter  
muxu [e] mouse  


na [pr] at (in, on)  
na bada [pr] after (following)  
na dura [pr] while (during)  
na in [pr] in (inside)  
na fas [pr] on (on surface)  
na loka [pr] at (at the location of)  
na way [pr] out (outside)  
na wen [pr] around (about)  
na xia [pr] below (under)  
nabat [e] plant (vegetable)  
nabi [e] prophet  
nadi [e] river  
nafas [e] breath  
nahun [e] nail (fingernail)  
naijiria [e] Nigeria  
nam [e] name  
nama [a] call (give name)  
nanas [e] pineapple  
nano [num] nano-  
narak [e] hell  
nas [e] people (folk)  
nasi [i] popular  
nasia [e] nation  
nasiai [i] national  
nasiaisme [e] nationalism  
nau [e] brain  
nederland [e] Netherlands  
nen [e] year  
nen feste [e] anniversary  
nenufar [e] water lily (nenuphar)  
nepal [e] Nepal  
neptun [e] Neptune  
net [e] net  
niam [e] meat (flesh)  
nida [a] need  
nidi [i] necessary (needed)  
nijer [e] Niger  
nik [e] enthusiast (aficionado)  
nikaragua [e] Nicaragua  
nil [i] blue  
nilon [e] nylon  
nipon : Japan  
nitro [e] nitrogen  
nixe [e] niche (alcove)  
no [o] no (not)  
noce [e] night  
noi [e] nine (9)  
nonga [a] cultivate  
norde [e] north  
nordi [i] northern  
norge [e] Norway  
norme [e] norm (standard)  
normi [i] normal  
nos [e] nose  
not [e] note (observation)  
not buk [e] notebook  
nota [a] note (observe, notice)  
notar [e] notary  
notis [e] notice (notification)  
notisa [a] notify  
nowa [a] renew (make new, renovate)  
nowi [i] new (novel)  
nudi [i] naked (bare)  
nudisme [e] nudism  
nul [num] zero (none)  
nul jen [e] nobody (no-one)  
nul xe [e] nothing  
numer [e] number  
numer un [e] first (number one)  
nun [o] now  
nuton [e] newton (N)  


o [int] oh!  
ofis [e] office (position)  
ofisar [e] officer  
okey [e] okay (acceptable)  
okeya [a] accept (to say okay)  
okse [e] oxygen  
oma [e] grandmother  
oman [e] Oman  
opa [e] grandfather  
or [e] ear  
ordu [e] horde (wandering troop)  
orgazme [e] orgasm  
oskur [i] dark (dim)  
osteraih [e] Austria  


pa [e] father  
paban [e] board (plank)  
pagri [e] turban  
pak [e] pack (package)  
paka [a] pack  
paket [e] packet  
paki [e] bird  
pakistan [e] Pakistan  
pal [e] fruit (result, outcome)  
palma [e] palm tree  
pan [e] bread  
panama [e] Panama  
panda [e] panda  
panafrikai [i] pan-African  
panamerikai [i] pan-American  
panasiai [i] pan-Asian  
paneuropai [i] pan-European  
pandunia [e] Pandunia  
panduniai [i] global  
pang [i] thick (fat)  
panik [e] panic  
pantalon [e] pants (trousers)  
papa [e] father (dad)  
papagai [e] parrot (parakeet)  
papaya [e] papaya  
paper [e] paper  
par [i] equal (peer)  
paraguai [e] Paraguay  
parde [e] curtain  
pasa [a] pass (go by, go past)  
paskal [e] pascal  
pat [e] path (track, trail)  
paunde [e] pound (£)  
paus [e] pause (break, interruption)  
pausa [a] pause (interrupt)  
paxa [a] hurt  
paxi [i] painful  
paxia [e] suffering (passion)  
paxu [a] suffer (get hurt)  
pai [e] pie (pastry)  
ped [e] foot  
pey [e] payment  
peya [a] pay  
penda [a] hang (dangle)  
penguin [e] penguin  
penis [e] penis  
pensa [a] think  
penta [a] paint  
pentar [e] painter  
pera [e] pear  
perda [a] fart  
perfet [i] perfect  
peri [e] fairy  
permis [e] permission  
permisa [a] allow (permit)  
peru [e] Peru  
pesa [e] money  
pexa [e] job (occupation)  
piano [e] piano  
pifu [e] skin  
pigu [e] buttocks (butt)  
pijin [e] pidgin (contact language)  
piknik [e] picnic  
pilipin [e] Philippines (Filipino)  
pilot [e] pilot  
pin [e] needle (pin)  
ping [e] flat  
pingo [e] apple  
pinse [e] pliers (pincers)  
pipa [e] pipe  
piper [e] pepper  
piping [e] criticism (critique)  
pirat [e] pirate  
pistol [e] pistol  
pistol nik [e] gunslinger  
pitsa [e] pizza  
pixa [a] piss (urine)  
plan [e] plan  
plana [a] intend (plan)  
planet [e] planet  
plastik [e] plastic  
plat [e] plate  
platon [e] Plato  
platoni [i] Platonic  
platonia [e] Platonism  
plus [o] also (plus, too)  
pluto [e] Pluto (dwarf planet)  
poker [e] poker  
poli [num] several  
polis [e] police  
polisar [e] police officer  
politik [e] politics  
politikar [e] politician  
polska [e] Poland  
pompa [a] pump  
ponta [a] point (indicate)  
porne [e] porn  
porne grafia [e] pornography  
porta [a] carry (bear)  
portugal [e] Portugal  
posta [a] send by mail  
poste [e] mail  
poste cap [e] postal stamp  
poste kan [e] post office  
poto [e] mud (mire)  
poza [a] pose (set)  
poze [e] pose (position)  
pratik [i] practical  
presis [i] precise (exact, accurate)  
proba [a] try (attempt)  
problem [e] problem  
profesor [e] professor  
program [e] program  
programar [e] programmer (coder)  
projet [e] project (planned endeavour)  
proses [e] process (procedure)  
puder [e] powder  
puding [e] pudding  
puertoriko [e] Puerto Rico  
puja [a] worship (revere)  
pul [e] bridge  
pulo [e] island  
punt [e] point (full stop)  
pupe [e] doll (puppet)  
puru [e] feather  
putau [e] grape  
putong [i] common (universal)  
putong han [e] Mandarin Chinese (Putonghua)  
puxa [a] push  


radio [e] radio  
raje [e] king or queen  
raji [i] royal  
rajia [e] kingdom  
ramazan [e] Ramadan  
randa [e] plane (plane tool)  
rang [e] color  
rapid [i] fast (quick)  
ras [e] race (ethnicity)  
rasisme [e] racism  
raste [e] growth  
rastu [a] grow  
ratiba [i] order (arrange)  
ratibe [e] order (arrangement)  
razon [e] reason (rational thinking)  
razoni [i] radional (reasonable)  
rebel [e] rebellion  
redi [i] ready  
reda [a] prepare (make ready)  
reporta [a] report (recount, relate)  
reporte [e] report  
reset [e] recipe  
resid [e] receit  
restoran [e] restaurant  
rezin [e] resin  
rik [i] rich  
ris [e] rice  
riske [e] risk  
riski [i] risky  
rit [e] ritual (ceremony)  
ritme [e] rhythm (beat)  
robot [e] robot  
roket [e] rocket  
rol [e] role  
rom [e] rum  
roma [e] Rome  
roma empiria [e] Roman Empire  
romans [e] romantic love  
romansa [a] love romantically  
romansi [i] romantic  
rona [a] cry (weep)  
rong [e] oriental dragon  
ros [i] red  
rose [e] dew  
rosia [e] Russia  
rotor [e] rotor (rotator)  
roza [e] rose  
ruk [e] back  
ruk sak [e] backpack (rucksack)  
rula [a] roll  
rup [e] appearance (looks)  
ruski [i] Russian (ethnic Russian)  
rutin [e] routine  


sa [pr] this or that  
sa far [pr] that (that over there)  
sa jin [pr] this (this over here)  
sabat [e] Sabbath  
sabun [e] soap  
sadi [i] plain (simple)  
saf [i] clean (pure)  
safa [a] clean (purify)  
safar [e] travel (voyage)  
safar nik [e] tourist  
safara [a] travel  
safarar [e] traveler  
saga [a] tell (narrate)  
sage [e] tale (legend, saga)  
sak [e] bag (sack)  
sal [e] salt  
salada [e] salad  
salam [e] greeting (hello)  
salama [a] greet  
salima [a] surrender (to give up)  
salone [e] Sierra Leone  
salta [a] jump  
sam [num] three (3)  
saman [e] sky (heaven)  
samani [i] celestial (heavenly)  
san kan [e] factory  
sana [a] make (produce, manufacture)  
sani [i] artificial  
sani bax [e] artificial language (conlang)  
sania [e] production  
sanduk [e] box (chest)  
sang [e] blood  
sant [i] holy (sacred)  
sapat [e] shoe  
sar [e] head  
sar gut [e] skull  
sat [e] time of day (moment)  
sauna [e] sauna  
se [pr] self  
sekretar [e] secretary  
seksa [a] have sex  
sekse [e] sex (sexual intercourse)  
seksi [i] sexy (sexual)  
sekun [e] second(s)  
sekur [i] safe (secure)  
sel [e] cell (biology)  
selen [e] selenium  
sem [i] same  
sement [e] cement  
sen [e] chest (thorax)  
sens [e] sense  
senta [a] feel (emote)  
serbia [e] Serbia  
serca [a] search  
seres [e] Ceres (dwarf planet)  
serie [e] series  
sesam [e] sesame  
set [num] seven (7)  
set war [e] week  
si [o] yes (yeah)  
sibir [e] Siberia  
sifa [e] quality (charasteristic)  
sigar [e] cigar  
sigaret [e] cigarette  
silsil [e] chain  
sinye [e] sign (signal)  
singa [e] lion  
singapur [e] Singapore  
sir [i] secret  
sirke [e] circle  
sirki [i] round  
sis [num] six (6)  
sisme [e] earthquake  
sisme lojia [e] seismology  
sistem [e] system  
sistemi [i] systemic  
sita [a] quote (to cite)  
siti [e] city (town)  
slowakia [e] Slovakia  
slowenia [e] Slovenia  
sofa [e] sofa (couch)  
sofi [e] wise  
sofia [e] wisdom  
sol [o] only (just)  
son [e] sleep  
son kamer [e] bedroom  
sona [a] sleep (be asleep)  
sonda [a] sound (make a sound)  
sonde [e] sound (audio)  
sos [e] sauce  
sosis [e] sausage  
sporte [e] sport (athletics)  
sportar [e] athlete (sportsman)  
stadion [e] stadium  
stat [e] state  
stati [i] static (stationary)  
stop [e] stop  
su [e] water  
suan [i] sour  
suba [e] morning  
suba den [e] forenoon  
suba salam [fr] Good morning  
suba kane [e] breakfast  
sud [e] south  
sudafrika [e] South Africa (republic)  
sudan [e] Sudan  
suede [e] sweat (perspiration)  
suedi [i] sweaty  
suhi [i] dry  
suka [a] please (delight, make happy)  
suki [i] happy (delighted)  
suku [u] be fond of (like, enjoy, be pleased)  
suker [e] sugar  
sukeri [i] sugary  
sultan [e] power (authority, rule)  
sultana [a] rule (be in charge)  
sultanar [e] ruler  
sum [e] sum (total)  
suma [a] sum up (add together)  
sun [o] soon  
sundar [e] beautiful (handsome)  
suomi [e] Finland  
sup [e] soup  
super [e] superb (wonderful, super)  
sura [e] chapter (section)  
suriname [e] Suriname  
surya [e] sun  
suxi [e] sushi  
svenska [e] Sweden  
swis [e] Switzerland  


tabak [e] tobacco  
tabar [e] axe (hatchet)  
tabel [e] table (matrix)  
tabia [e] nature (environment)  
tabiai [i] environmental (natural)  
tai [e] Thai (Thailand)  
taiga [e] taiga  
taksi [e] taxi  
taktik [e] tactics (strategy)  
tal [e] bottom  
tala [e] lock  
tamar [e] date fruit  
tambur [e] drum  
tanah [e] Tanakh (Jewish Bible)  
tank [e] tank (container)  
tanzania [e] Tanzania  
tap [e] tap (stopper)  
tara [e] star  
tatu [e] tattoo  
taula [e] towel  
tawa [e] frying pan  
tazi [i] fresh  
tekne [e] technique (technology)  
tekne lojia [e] technology (study of techniques)  
tela [e] cloth (fabric, textile)  
tele [e] distant (tele-)  
tem [e] topic (subject, theme)  
tema [a] be about (discuss as a subject)  
tena [a] hold (grasp)  
tenci [e] weather  
tenis [e] tennis  
tenta [a] tempt (entice)  
teore [e] theory  
tep [e] tape  
teror [e] terror  
terorisme [e] terrorism  
tesa [a] argue (claim)  
tese [e] argument (thesis)  
teste [e] test (challenge)  
teyan [e] suggestion (proposal)  
teyana [a] suggest (propose)  
tez [i] intense (depending on context: strong, brisk, violent, swift, pungent, hot, fiery, sharp)  
ticin [e] bow instrument (violin, etc.)  
tik [i] right (correct)  
tika [a] rectify (make correct)  
tiket [e] ticket  
tim [e] team  
tin [e] can (tin can)  
tira [a] pull  
tiran [e] tyrant  
tirania [e] tyranny  
titan [e] titanium  
to [pr] to (till, until)  
toca [a] touch  
togo [e] Togo  
tolo [e] top (spinning top)  
tomat [e] tomato  
ton [e] tone (pitch or shade)  
tong [e] barrel (can)  
top [e] gun  
topi [e] hat (cap)  
tortuga [e] turtle (tortoise)  
tot [i] whole (entire, all)  
total [i] total (affecting all)  
tren [e] train  
tren dau [e] railway (railroad)  
tu [pn] you  
tualet [e] toilet (WC)  
tub [e] tube (pipe)  
tufan [e] storm (tempest)  
tul [e] tool  
tulip [e] tulip  
tumen [pn] you all  
tundra [e] tundra  
tunel [e] tunnel  
tunel tren [e] subway (metro)  
tung [e] hurt (pain)  
tunis [e] Tunisia  
tur [e] tour (trip)  
turisme [e] tourism  
turiste [e] tourist  
turki [i] Turkish  
turkia [e] Turkey  
tuzi [e] rabbit (hare)  


u [conj] or  
udas [i] sad  
ukrayina [e] Ukraine  
ulul [e] howling  
ulula [a] howl  
uma [e] horse  
umur [e] age  
un [num] one (1)  
una [a] unite  
uni [i] united  
uni stat de amerika [e] United States of America  
unia [e] union  
uran [e] Uranus  
uranium [e] uranium  
urdun [e] Jordan  
uruguai [e] Uruguay  
usamerika [e] US America  
uza [a] use  
uzar [e] user  

## v

viet [e] Vietnam  
vodu [e] voodoo  
volta [e] volt  


wa [int] wow! (gee!)  
wada [a] promise (commit)  
waf [e] dog  
waha [e] oasis  
wain [e] wine  
waksin [e] vaccine  
wanila [e] vanilla  
war [e] day of the week  
war 1 (war un) [e] Monday  
war 2 (war du) [e] Tuesday  
war 3 (war sam) [e] Wednesday  
war 4 (war car) [e] Thursday  
war 5 (war lim) [e] Friday  
war 6 (war sis) [e] Saturday  
war 7 (war set) [e] Sunday  
way [e] outside (exterior)  
way gojia [e] foreign country  
wakila [a] represent  
wan [e] bowl (earless cup)  
wang [e] yellow  
waris [e] heritage (bequest)  
wat [e] watt  
wax maxin [e] washing machine  
waxa [a] wash  
weka [a] wake (make awake)  
weki [i] awake  
wen [e] circle (ring)  
werme [e] worm  
weste [e] west  
westi [i] western  
wida [a] look (see)  
wide [e] view (vision)  
wide maidan [e] visual field (field of vision)  
wideo [e] video  
wiki [e] wiki  
wiman [e] airplane  
win [e] win (victory)  
wing [e] wing  
winil [e] vinyl  
wirus [e] virus  
wirus lojia [e] virology  
wizit [e] visit  
wol [a] want (desire)  


xak [e] doubt (disbelief)  
xakal [e] jackal  
xal [e] scarf (shawl)  
xale [e] cottage (chalet)  
xam [e] evening  
xam den [e] afternoon  
xam salam [fr] Good evening  
xam kane [e] dinner  
xaman [e] shaman  
xamba [e] field (countryside)  
xampu [e] shampoo  
xan [e] mountain (hill)  
xani [e] Saturn  
xanti [e] peace (calm)  
xaria [e] shari'a  
xatan [e] devil (Satan)  
xatani [i] devilish (satanic)  
xatur [e] chess  
xaw [o] few (little)  
xaxa [a] rustle  
xe [e] thing  
xef [e] chief (boss)  
xef ministar [e] prime minister  
xefi [i] main  
xia [e] under (below)  
xifu [e] master (sensei)  
xigo [e] accident (mishap)  
xik [i] elegant (chic)  
xim [e] heart  
xin [e] belief (faith, creed)  
xina [a] believe  
xir [e] poem  
xirar [e] poet  
xirop [e] syrup  
xok [e] shock (collision)  
xow [e] show  
xowa [a] show (display)  
xu [e] tree  
xula [a] repair (fix)  


yak [e] yak  
yakin [e] certain (sure)  
yala [a] hurry (hasten)  
yaman [e] Yemen  
yang [e] kind (type, style)  
yani [conj] that is (in other words, i.e.)  
yasen [e] ash tree  
yatim [e] orphan  
ye [pr] he or she or it  
yemen [pr] they  
yehudi [i] Jew  
yen [e] eye  
yep [e] leaf  
yer [o] yesterday  
yesu [e] Jesus  
yo [pr] some  
yo jen [e] someone (somebody)  
yo xe [e] something  
yod [e] iodine  
yoga [e] yoga  
yoni [e] vagina  
yosai [e] fortress (stronghold)  
yumor [e] humor  
yungam [i] brave (courageous)  
yureka [a] find (discover)  


zafran [e] saffron  
zaitun [e] olive  
zalim [i] mean (cruel)  
zaman [e] period (age, epoch)  
zambia [e] Zambia  
zardux [e] Zoroaster  
zardux din [e] Zoroastrianism  
zay [i] present (existing)  
zaye [e] existence (presence)  
ze [pr] from (since)  
zem [e] earth (soil)  
zem dou [e] peanut (groundnut)  
zemia [e] Earth (Terra)  
ziba [a] plug (stop with a plug)  
zibula [a] unplug (uncork)  
zigzag [e] zigzag  
zimbabwe [e] Zimbabwe  
zine [e] adultery (infidelity)  
zink [e] zinc  
zira [e] cumin  
zizi [e] fly (housefly)  
zon [e] belt (zone)  
zukam [e] cold (illness)  
zulu [e] Zulu  
zumrud [e] emerald  

|Author|Eric Shulman|
|Description|selectively disable TiddlyWiki's automatic ~WikiWord linking behavior|
This plugin allows you to disable TiddlyWiki's automatic ~WikiWord linking behavior, so that WikiWords embedded in tiddler content will be rendered as regular text, instead of being automatically converted to tiddler links.  To create a tiddler link when automatic linking is disabled, you must enclose the link text within {{{[[...]]}}}.
You can block automatic WikiWord linking behavior for any specific tiddler by ''tagging it with<<tag excludeWikiWords>>'' (see configuration below) or, check a plugin option to disable automatic WikiWord links to non-existing tiddler titles, while still linking WikiWords that correspond to existing tiddlers titles or shadow tiddler titles.  You can also block specific selected WikiWords from being automatically linked by listing them in [[DisableWikiLinksList]] (see configuration below), separated by whitespace.  This tiddler is optional and, when present, causes the listed words to always be excluded, even if automatic linking of other WikiWords is being permitted.  

Note: WikiWords contained in default ''shadow'' tiddlers will be automatically linked unless you select an additional checkbox option lets you disable these automatic links as well, though this is not recommended, since it can make it more difficult to access some TiddlyWiki standard default content (such as AdvancedOptions or SideBarTabs)
<<option chkDisableWikiLinks>> Disable ALL automatic WikiWord tiddler links
<<option chkAllowLinksFromShadowTiddlers>> ... except for WikiWords //contained in// shadow tiddlers
<<option chkDisableNonExistingWikiLinks>> Disable automatic WikiWord links for non-existing tiddlers
Disable automatic WikiWord links for words listed in: <<option txtDisableWikiLinksList>>
Disable automatic WikiWord links for tiddlers tagged with: <<option txtDisableWikiLinksTag>>
2008.07.22 [1.6.0] hijack tiddler changed() method to filter disabled wiki words from internal links[] array (so they won't appear in the missing tiddlers list)
2007.06.09 [1.5.0] added configurable txtDisableWikiLinksTag (default value: "excludeWikiWords") to allows selective disabling of automatic WikiWord links for any tiddler tagged with that value.
2006.12.31 [1.4.0] in formatter, test for chkDisableNonExistingWikiLinks
2006.12.09 [1.3.0] in formatter, test for excluded wiki words specified in DisableWikiLinksList
2006.12.09 [1.2.2] fix logic in autoLinkWikiWords() (was allowing links TO shadow tiddlers, even when chkDisableWikiLinks is TRUE).  
2006.12.09 [1.2.1] revised logic for handling links in shadow content
2006.12.08 [1.2.0] added hijack of Tiddler.prototype.autoLinkWikiWords so regular (non-bracketed) WikiWords won't be added to the missing list
2006.05.24 [1.1.0] added option to NOT bypass automatic wikiword links when displaying default shadow content (default is to auto-link shadow content)
2006.02.05 [1.0.1] wrapped wikifier hijack in init function to eliminate globals and avoid FireFox crash bug when referencing globals
2005.12.09 [1.0.0] initial release
version.extensions.DisableWikiLinksPlugin= {major: 1, minor: 6, revision: 0, date: new Date(2008,7,22)};

if (config.options.chkDisableNonExistingWikiLinks==undefined) config.options.chkDisableNonExistingWikiLinks= false;
if (config.options.chkDisableWikiLinks==undefined) config.options.chkDisableWikiLinks=false;
if (config.options.txtDisableWikiLinksList==undefined) config.options.txtDisableWikiLinksList="DisableWikiLinksList";
if (config.options.chkAllowLinksFromShadowTiddlers==undefined) config.options.chkAllowLinksFromShadowTiddlers=true;
if (config.options.txtDisableWikiLinksTag==undefined) config.options.txtDisableWikiLinksTag="excludeWikiWords";

// find the formatter for wikiLink and replace handler with 'pass-thru' rendering
function initDisableWikiLinksFormatter() {
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="wikiLink"; i++);
	config.formatters[i].handler=function(w) {
		// supress any leading "~" (if present)
		var skip=(w.matchText.substr(0,1)==config.textPrimitives.unWikiLink)?1:0;
		var title=w.matchText.substr(skip);
		var exists=store.tiddlerExists(title);
		var inShadow=w.tiddler && store.isShadowTiddler(w.tiddler.title);
		// check for excluded Tiddler
		if (w.tiddler && w.tiddler.isTagged(config.options.txtDisableWikiLinksTag))
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// check for specific excluded wiki words
		var t=store.getTiddlerText(config.options.txtDisableWikiLinksList);
		if (t && t.length && t.indexOf(w.matchText)!=-1)
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// if not disabling links from shadows (default setting)
		if (config.options.chkAllowLinksFromShadowTiddlers && inShadow)
			return this.coreHandler(w);
		// check for non-existing non-shadow tiddler
		if (config.options.chkDisableNonExistingWikiLinks && !exists)
			{ w.outputText(w.output,w.matchStart+skip,w.nextMatch); return; }
		// if not enabled, just do standard WikiWord link formatting
		if (!config.options.chkDisableWikiLinks)
			return this.coreHandler(w);
		// just return text without linking

Tiddler.prototype.coreAutoLinkWikiWords = Tiddler.prototype.autoLinkWikiWords;
Tiddler.prototype.autoLinkWikiWords = function()
	// if all automatic links are not disabled, just return results from core function
	if (!config.options.chkDisableWikiLinks)
		return this.coreAutoLinkWikiWords.apply(this,arguments);
	return false;

Tiddler.prototype.disableWikiLinks_changed = Tiddler.prototype.changed;
Tiddler.prototype.changed = function()
	// remove excluded wiki words from links array
	var t=store.getTiddlerText(config.options.txtDisableWikiLinksList,"").readBracketedList();
	if (t.length) for (var i=0; i<t.length; i++)
		if (this.links.contains(t[i]))
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Date:''|mar 17, 2007|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license| ]]|
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: ""};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 return bidix.core.loadRemoteFile(url,callback,params);
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<link rel="shortcut icon" href="" type="image/x-icon">
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Date:''|Apr 19, 2007|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license| ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: '',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|]]',
	coreVersion: '2.2.0 (Beta 5)'

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			// checkbox linked with this password "save this password on this computer"
			// text savePasswordCheckboxLabel
		onChange: config.macros.option.genericOnChange

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
		return config.options[name] ? "true" : "false";

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
		set: function(name,value) {config.options[name] = decodeCookie(value);}

// need to reload options to load passwordOptions

if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

		pasPassword: "Test password"
|Author|Eric Shulman|
|Description|disable doubleclick-to-edit-tiddler or replace doubleclick with shift/ctrl/alt+singleclick|
<<tiddler ReplaceDoubleClick>> or
<<tiddler ReplaceDoubleClick with: key trigger>>
*''key'' (optional)
**''none'' (default=disables double-click)
**''ctrl, shift,'' or ''alt'' invokes the action only when the indicated key is used in combination with the mouse.
*''trigger'' (optional)<br>is either 'click' or 'doubleclick' (default).
{{{<<tiddler ReplaceDoubleClick with: shift click>>}}}
<<tiddler ReplaceDoubleClick with: shift click>>//(use shift+click to edit this tiddler)//
<<tiddler {{
	var here=story.findContainingTiddler(place);
	if (here && here.ondblclick) {
		var key='$1'; if (key=='$'+'1') key='none'
		if (['shift','ctrl','alt'].contains(key))
		var trigger=('$2'=='click')?'onclick':'ondblclick';
		if (here.getAttribute('editKey')!='none')
			here[trigger]=function(e) {
				var ev=e?e:window.event;
				if (ev[this.getAttribute('editKey')])
%/<<tiddler {{var src='ReplaceDoubleClick';src+(tiddler&&tiddler.title==src?'##info':'##show')}} with: [[$1]] [[$2]]>>
Pandunia - English
body {font-size:0.9em; font-family:verdana,arial,helvetica; margin:0; padding:0;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:0em 0 0.1em .5em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:0em 0 .1em .5em; left:0px; top:0px;}
#displayArea {margin:-1em 4em 0em 4em; }
.viewer table, table.twtable {margin:0.8em 0;width:100%;}
.viewer a{color: #000;text-decoration:none;background:transparent;}
.viewer a:hover{color:#03f;text-decoration:underline;background:transparent;}
.toolbar {font-size:0em;}
|~EditToolbar|+saveTiddler -cancelTiddler copyTiddler deleteTiddler|
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from for a complete working Tiddlyspot site.

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = '';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
window.showBackstage = true; // show backstage too

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");

// create some shadow tiddler content

 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + " index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + "]], [[download (go offline)|http://" + config.tiddlyspotSiteId + "]]|",
 "| links:|[[|]], [[FAQs|]], [[blog|]], email [[support|]] & [[feedback|]], [[donate|]]|"

 "tiddlyspot password:",
 "<<option pasUploadPassword>>",

 "<<upload http://" + config.tiddlyspotSiteId + " index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + "' class='button'>download</a></html>"

 "This document is a ~TiddlyWiki from  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + "]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[|]].  Also visit [[|]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|]].",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your site.  Please email [[|]] with any comments or suggestions."

| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 30/12/2015 16:20:21 | YourName | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 30/12/2015 16:51:02 | YourName | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 30/12/2015 16:56:17 | YourName | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
| 30/12/2015 16:57:36 | YourName | [[/|]] | [[store.cgi|]] | . | [[index.html |]] | . |
|''Description:''|Save to web a TiddlyWiki|
|''Date:''|Feb 24, 2008|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license| ]]|
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: '',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'

// Environment

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
// Upload Macro

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);

config.macros.upload.action = function(params)
		// for missing macro parameter set value from options
		if (!params) params = {};
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			return false;
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			return false;
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;

// uploadOptions Macro

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
			uploadCaption = config.macros.upload.label.uploadLabel;
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
	options: [
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opt.option = "";
			n = this.options[i]; = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
	onCancel: function(e)
		return false;
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 

// upload functions

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
		if (bidix.debugMode) 
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
	if(onlyIfDirty && !store.isDirty())
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
	// get original
	var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
	if (typeof r == "string")
	return r;

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
		} else {
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
	} else {

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
		} else {
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == 404)
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
		if (responseText.charAt(0) != '0')
			status = null;
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
	return r;

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;

// UploadLog
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
	return this;

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			this.tiddler.text = textArray.join('\n');		
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	// refresh and notifiy for immediate update
	store.notify(this.tiddler.title, true);

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
	this.addText(" "+status+" |");

// Utilities

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"

bidix.dirname = function(filePath) {
	if (!filePath) 
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));

bidix.basename = function(filePath) {
	if (!filePath) 
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;

// Initializations

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"

// Options Initializations

// Backstage
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}


<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<span macro="tiddler ReplaceDoubleClick with: alt click"></span></span>
<div class='title' macro='view title'></div>
<div class='viewer' macro='view text wikified'></div>
<<tiddler HideTiddlerTags>>{{small smallform{
<html><a href='' class='link'><u>Download the dictionary for offline</u></a><form style='display:inline;white-space:nowrap;' onsubmit=';return false;'>
<table><tr><td style='width:33%;font-size:1.4em;'>
Search for <input name=pattern style='width:auto;font-size:1.4em;' value='' title='o lukin' autofocus>
<input type=button style='width:auto;font-size:1.0em;' name=pavysisku value='Go !' onclick="
var f=this.form;
var target=f.nextSibling; removeChildren(target);
var arrRestStr=[];
var outa=[];
var outb=[];
var outc=[];
var outd=[];
var oute=[];
var Couta=[];
var Coutb=[];
var Coutc=[];
var Coutd=[];
var Coute=[];
var zil=[];
var tempa;
var tempb='';
var tempc;
var tempd;
var tempe;
var tb='[^\t]*?\t';
var fpvd;
var zi='@@background-color:#7FFF00;$1@@';
var sle='>|>|@@margin-top:0px;padding-left:0.5em;padding-right:0.5em;font-size:1em;float:right;font-weight:normal;border:1px solid #393939;margin-top:-1px;color:#fff;background:#db4;display:block;//[[';
var slewhite='>|>|@@margin-top:0px;padding-left:0.5em;padding-right:0.5em;font-size:1em;float:right;font-weight:normal;border:1px solid #222;margin-top:-1px;color:#fff;background:#999;display:block;//[[';
Array.prototype.diff = function(a) {
    return this.filter(function(i) {return !(a.indexOf(i) > -1);});

var tids=store.getTaggedTiddlers('dic');
fpv = f.pattern.value.toLowerCase();
if(fpv.length == 0) return;
for (var t=0; t<tids.length; t++) {

	tempa=arrRestStr.filter(/./.test.bind(new RegExp('^'+fpv+'\t','i')));
	arrRestStr = arrRestStr.diff(tempa);
	//tempb=arrRestStr.filter(/./.test.bind(new RegExp('^'+'(|[^\t]*?[;\.\042])'+fpv+'[!;\.\042\t]','i')));
	//arrRestStr = arrRestStr.diff(tempb);
	tempc=arrRestStr.filter(/./.test.bind(new RegExp('^'+'(|[^\t]*?[;\.\042, ])'+fpv+'[!;\.\042, \t]','i')));
	arrRestStr = arrRestStr.diff(tempc);
	if (tempa.length+tempb.length+tempc.length>0) outa = outa.concat([sle+tids[t].title+']]//@@']);
	zil = zil.concat(tempa.slice(0,30)).concat(tempc.slice(0,30)).map(function(somet){return somet.replace(new RegExp('('+fpv+')', 'gi'),zi);});
        outa = outa.concat(zil); zil=[];
//now vague
	tempd=arrRestStr.filter(/./.test.bind(new RegExp('^'+'(|[^\t]*?[;\.\042, ])'+fpv,'i')));
	arrRestStr = arrRestStr.diff(tempd);
	tempe=arrRestStr.filter(/./.test.bind(new RegExp('^'+'(|[^\t]*?)'+fpv,'i')));
	arrRestStr = arrRestStr.diff(tempe);
	if (tempd.length+tempe.length>0) outd = outd.concat([slewhite+tids[t].title+']]//@@']);
	zil = zil.concat(tempd.slice(0,30)).concat(tempe.slice(0,30)).map(function(somet){return somet.replace(new RegExp('('+fpv+')', 'gi'),zi);});
        outd = outd.concat(zil); zil=[];
//Cout precise
	tempa=arrRestStr.filter(/./.test.bind(new RegExp('^'+tb+tb+fpv+'([!;\.\042\t,]|$)','i')));
	arrRestStr = arrRestStr.diff(tempa);
	//tempb=arrRestStr.filter(/./.test.bind(new RegExp('^'+tb+'(|[^\t]*?[;\.\042])'+fpv+'([!;\.\042\t]|$)','i')));
	//arrRestStr = arrRestStr.diff(tempb);
	tempc=arrRestStr.filter(/./.test.bind(new RegExp('^'+tb+'(|[^\t]*?[;\.\042, ])'+fpv+'([!;\.\042, \t]|$)','i')));
	arrRestStr = arrRestStr.diff(tempc);
	if (tempa.length+tempb.length+tempc.length>0) Couta = Couta.concat([sle+tids[t].title+']]//@@']);
	zil = zil.concat(tempa.slice(0,30)).concat(tempc.slice(0,30)).map(function(somet){return somet.replace(new RegExp('('+fpv+')', 'gi'),zi);});
        Couta = Couta.concat(zil); zil=[];
//now vague
	tempd=arrRestStr.filter(/./.test.bind(new RegExp('^'+tb+'(|[^\t]*?[;\.\042, ])'+fpv+'([!;\.\042, \t]|$)','i')));
	arrRestStr = arrRestStr.diff(tempd);
	tempe=arrRestStr.filter(/./.test.bind(new RegExp('^'+tb+'(|[^\t]*?)'+fpv,'i')));
	arrRestStr = arrRestStr.diff(tempe);
	if (tempd.length+tempe.length>0) Coutd = Coutd.concat([slewhite+tids[t].title+']]//@@']);
	zil = zil.concat(tempd.slice(0,30)).concat(tempe.slice(0,30)).map(function(somet){return somet.replace(new RegExp('('+fpv+')', 'gi'),zi);});
        Coutd = Coutd.concat(zil); zil=[];
	//Coute = Coute.concat(tempe.slice(0,30));
//concat all arrays, reformat to tw-table formatting
if (outa.length>0) outa = ['>\t>\t!in source words:'].concat(outa);
if (Couta.length>0) Couta = ['>\t>\t!in translation:'].concat(Couta);
if (outa.length+Couta.length>0) outa = ['>\t>\t!PRECISE SEARCH'].concat(outa);

//vague search output
if (outd.length>0) outd = ['>\t>\tbackground-color:#999;!in source words:'].concat(outd);
if (Coutd.length>0) Coutd = ['>\t>\tbackground-color:#999;!in translation:'].concat(Coutd);
if (outd.length+Coutd.length>0) outd = ['>\t>\tbackground-color:#999;!SEQUENCE SEARCH'].concat(outd);
tids = outa.concat(Couta).concat(outd).concat(Coutd).join('\n').replace(/(^|\t|$)/img,'|');

//output this fucking string!
if (tids.length>3) wikify(tids,target);
// hacky solution to avoid scrolling header out of view 
window.ensureVisible = function(e) {return false}