<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
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
/*{{{*/
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]];
	background:[[ColorPalette::TertiaryPale]];
	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]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.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]];}

#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 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.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:0em 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 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 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 0em;}
.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 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 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 0em 14em;}

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

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

.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:0em 0.25em; padding:0em 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:0px 3px 0px 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 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

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

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.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 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 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 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<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>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' 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>
<!--}}}-->
<!--{{{-->
<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'></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>>
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
<<importTiddlers>>
''0.6.0'' (9.X.2006)
Русифицированы автоматически создающиеся системные записи, поправлены ошибки в согласовании. Из плохого -- осталось одно "малоосмысленное" сообщение. 
Новая версия русификации ReminderMacros!
|''URL:''|http://tiddlywiki.abego-software.de/|
|''Description:''|UdoBorkowski's Extensions for TiddlyWiki|
|''Author:''|UdoBorkowski|
When you click on the blue [[download|Download]] button, the website will detect your browser and operating system, and trigger a download for either an empty ~TiddlyWiki file or, if you're running [[Safari]] or [[Opera]], a zip file which also includes the TiddlySaver file. This is version <<version>> of ~TiddlyWiki ([[release notes|http://trac.tiddlywiki.org/wiki/History]])

Advanced users may find these links helpful:
*[[An empty TiddlyWiki file|http://www.tiddlywiki.com/empty.download]]
*[[A zip file containing an empty TiddlyWiki file plus a TiddlySaver file|http://www.tiddlywiki.com/empty.zip]]
*[[The TiddlySaver file on it's own|http://www.tiddlywiki.com/TiddlySaver.jar]]
*[[Installation]] instructions for the main browsers
*A list of supported [[Browsers]]
<<options>>
Rename this tiddler to 'ColorPalette' to enable this color scheme

Background: #ffc
Foreground: #000
PrimaryPale: #fc8
PrimaryLight: #f81
PrimaryMid: #b40
PrimaryDark: #410
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #e88
TertiaryLight: #c66
TertiaryMid: #944
TertiaryDark: #633
This tiddler shows some more complex effects that can be obtained with cunning use of CSS. Not all of these will work properly on all browsers because of differences in CSS implementation, but they should fail gracefully.

You can have special formatting for a specific, named tiddler like this:
{{{
#tiddlerHelloThere .title {
background-color: #99aaee;
}
}}}

Or for the first displayed tiddler:
{{{
div.tiddler:first-child .title {
font-size: 28pt;
}
}}}

Or just for the first line of every tiddler:
{{{
.viewer:first-line {
background-color: #999999;
}
}}}

Or just for the first letter of every tiddler:
{{{
.viewer:first-letter {
float: left;
font-size: 28pt;
font-weight: bold;
}
}}}

Or just for tiddlers tagged with a particular tag (note that this won't work for tags that contain spaces):
{{{
div[tags~="welcome"].tiddler .viewer {
background-color: #ffccaa;
}

div[tags~="features"].tiddler .viewer {
background-color: #88aaff;
}
}}}
If you check this box in the InterfaceOptions, TiddlyWiki will automatically SaveChanges every time you edit a tiddler. In that way there's a lot less chance of you losing any information. 

However, if you also have the SaveBackups checkbox ticked, you'll end up with a lot of archived files. You may prefer to select either one or the other.
One of the great strengths of TiddlyWiki is the way that its interface can be customised by editting various shadow tiddlers. However, a problem that has consistently emerged is the difficulty of reconciling the needs of authors, who need access to the full array of TiddlyWiki features, and the needs of ordinary readers, who generally benefit from seeing a restricted set of functionality more suited to their needs.

The new backstage area in release 2.2 offers a solution to this conundrum by providing a consistent way of accessing authoring functionality that is independent of the interface customisations (so, even if you blast away the contents of your PageTemplate, you can still access the backstage area).

The backstage area is only available when a TiddlyWiki is edittable - typically meaning that it's been opened off of a {{{file://}}} URL. It appears as an unobtrusive link in the topright corner of the page. Clicking it reveals the backstage toolbar consisting of commands like {{{saveChanges}}} and drop-down tasks like ImportTiddlers, SyncMacro, PluginManager and Tweak (which provides access to the new OptionsMacro).
|''URL:''|http://tiddlywiki.bidix.info/|
|''Description:''|Repository for BidiX's TiddlyWiki Extensions|
|''Author:''|BidiX|
To make quoted bits of text stand out, you can use BlockQuotes within your tiddlers, like this:

JeremyRuston said:
<<<
A TiddlyWiki is like a blog because it's divided up into neat little chunks, but it encourages you to read it by hyperlinking rather than sequentially: if you like, a non-linear blog analogue that binds the individual microcontent items into a cohesive whole.
<<<

Like BulletPoints and NumberedBulletPoints, you can have multiple levels of BlockQuotes. Just edit this tiddler to see how it's done.

>level 1
>level 1
>>level 2
>>level 2
>>>level 3
>>>level 3
>>level 2
>level 1
|''URL:''|http://bob.mcelrath.org/plugins.html|
|''Description:''|Bob McElrath's Plugins|
|''Author:''|BobMcElrath|
Here is a table of PC / Mac / Linux browsers that work with ~TiddlyWiki:

|!Browser |!Version |!Allows changes to be saved locally?|
|InternetExplorer |6.0+ |Yes |
|FireFox |1.0+ |Yes |
|[[Safari]] |1.0+ |Yes, using TiddlySaver plugin|
|[[Opera]] |? |Yes, using TiddlySaver plugin|
|Netscape Navigator |7.0+ |Yes |
|[[Camino]] |1.0+ |Yes |
|Chrome |All |No |
|[[Wii]] |All |No |

Please [[let us know|http://groups.google.com/group/TiddlyWiki]] of any additions or corrections.
Creating BulletPoints is simple.
* Just add an asterisk
* at the beginning of a line.
** If you want to create sub-bullets
** start the line with two asterisks
*** And if you want yet another level
*** use three asterisks
* Edit this tiddler to see how it's done
* You can also do NumberedBulletPoints
The Mozilla-based [[Camino browser|http://www.caminobrowser.org/]] on Macintosh OS X works well with TiddlyWiki, including the ability to SaveChanges.
Abandons any pending edits to the current tiddler, and switches it the default view. It is used with the ToolbarMacro like this:
{{{
<<toolbar cancelTiddler>>
}}}
When you upload a TiddlyWiki to a web server, if doesn't load properly, it may be a CharacterEncoding issue.

TiddlyWiki uses Unicode ~UTF-8 encoding and won't load properly if your host is serving it as ~ISO-8859-1. You should be able to check this by loading another page on the server in FireFox and selecting 'Page Info' on the 'Tools' menu.

If this is the case, it should be reasonably easy to sort out. We recommend that you contact your server host and ask them to serve it in ~UTF-8 mode. If you are more technically hands-on, you may be able to [[solve the issue yourself|http://www.w3.org/International/questions/qa-htaccess-charset]].
/*{{{*/

	span.chunkyButton {
		display: block;
		padding: 0;
		margin: 0;
		border: solid 2px [[ColorPalette::Foreground]];
	}
	span.chunkyButton a.button, span.chunkyButton a:active.button {
		white-space: nowrap;
		font-weight: bold;
		font-size:1.8em;
		color: [[ColorPalette::Background]];
		background-color: [[ColorPalette::PrimaryMid]];
		text-align: center;
		padding: 1em 3em;
		margin: 0;
		border-style: none;
		border-top: solid 1px [[ColorPalette::Background]];
		display: block;
	}
	span.chunkyButton a.button:hover {
		background-color: [[ColorPalette::PrimaryDark]];
		border-style: none;
		color: [[ColorPalette::Background]];
		border-top: solid 1px [[ColorPalette::PrimaryPale]];
	}
	
	.downloadButton table,
	.downloadButton table tr,
	.downloadButton table td  {
		border-style:none;
		vertical-align:bottom;
		padding:0 0.5em 0 0;
		margin:0 0 0.2em 0;
	}


/*}}}*/
Closes all other open tiddlers, except for any that are being editted. It is used with the ToolbarMacro like this:
{{{
<<toolbar closeOthers>>
}}}
Closes the current tiddler, regardless of whether it is being editted. It is used with the ToolbarMacro like this:
{{{
<<toolbar closeTiddler>>
}}}
<<tiddler [[Help and Support]]>>
PageTemplate
|>|>|SiteTitle - SiteSubtitle|
|MainMenu|DefaultTiddlers<br><br><br><br>ViewTemplate<br><br>EditTemplate|SideBarOptions|
|~|~|OptionsPanel|
|~|~|AdvancedOptions|
|~|~|<<tiddler Configuration.SideBarTabs>>|

''StyleSheet:'' StyleSheetColors - StyleSheetLayout - StyleSheetPrint

SiteUrl
SideBarTabs
|[[Timeline|TabTimeline]]|[[All|TabAll]]|[[Tags|TabTags]]|>|>|[[More|TabMore]] |
|>|>||[[Missing|TabMoreMissing]]|[[Orphans|TabMoreOrphans]]|[[Shadowed|TabMoreShadowed]]|
@@margin-left:.5em;<<slider chkContents SideBarTabs "contents »" "show
lists of tiddlers contained in this document">>@@
~TiddlyWiki has an enthusiastic and friendly [[Community|Help and Support]] of people around the world helping to grow and improve it. But there's always more to do and we welcome any offers of assistance. There are many ways that you can help:
* Testing and [[reporting bugs|http://trac.tiddlywiki.org/wiki/ReportingBugs]] against the core code. Clear, easily reproducible bug reports are incredibly useful and really help the team improve the quality of ~TiddlyWiki
* [[Contributing code|http://trac.tiddlywiki.org/wiki/ContributingCode]]
* [[Making translations|http://trac.tiddlywiki.org/wiki/Translations]]
* Documentation needs planning, writing and editing, particularly user guide information at http://www.tiddlywiki.org
If you would like to make a financial contribution, ~TiddlyWiki is owned by the not-for-profit [[UnaMesa Foundation|http://www.unamesa.org/]] which welcomes donations.
You can wrap any text in an HTML {{{<span>}}} or {{{<div>}}} with a specified CSS class. This allows custom CSS styling in a nice, modular way. By placing a rule in your StyleSheet tiddler like {{{.wrappingClass{color: #666; background: #bbb} }}} you can markup a	piece of text in the tiddler using this code:

{{{
{{wrappingClass{Text that is now accentuated}}}
}}}

{{wrappingClass{Text that is now accentuated}}}

By default, the text is placed in a {{{<span>}}}. To use a {{{<div>}}} instead, insert a line break before the text:

{{{
{{wrappingClass{
Text that is now accentuated}}}
}}}

{{wrappingClass{
Text that is now accentuated}}}
Sometimes it's necessary to include custom HTML markup in the {{{<head>}}} of a TiddlyWiki file - typically for compatibility with ad serving software, external libraries, or for custom meta tags. The CustomMarkup operation defines four shadow tiddlers whose contents are spliced into the saved HTML file. (If you do a view/source you'll see the markers referred to below).
|!Title |!Location |!Marker |
|MarkupPreHead |Start of the {{{<head>}}} section |{{{<!--PRE-HEAD-START-->}}} |
|MarkupPostHead |End of the {{{<head>}}} section |{{{<!--POST-HEAD-START-->}}} |
|MarkupPreBody |Start of the {{{<body>}}} section |{{{<!--PRE-BODY-START-->}}} |
|MarkupPostBody |End of the {{{<body>}}} section |{{{<!--POST-BODY-START-->}}} |
MarkupPreHead is the only one with shadow content: a link to the default location of the RSS feed.
Starting with this revision, you can skin TiddlyWiki with a special StyleSheet tiddler containing your own CSS style sheet declarations. Unlike hacking the HTML directly, the StyleSheet tiddler withstands upgrading to a new version of the TiddlyWiki code (see HowToUpgrade). You can also use the NestedStyleSheets feature to structure your CSS declarations.

The ExampleStyleSheet shows some of the basic options you can control (see AnotherExampleStyleSheet for more complex examples). SaveChanges and then click refresh in your browser to see StyleSheet changes. Any errors in your CSS syntax will be caught and displayed, but they shouldn't stop TiddlyWiki from working.
You can customise the appearance and behaviour of TiddlyWiki to almost any degree you want:
* Install [[Plugins]] to extend the core functionality (find them at [[TiddlyVault|http://tiddlyvault.tiddlyspot.com/]] or you can try [[writing or adapting your own|http://tiddlywiki.org/wiki/Plugin_Development]])
* Use the ColorPalette to change the basic colour scheme
* Use built in [[Formatting|ExtendedFormatting]] techniques
* Create a CustomStyleSheet for finer grained control over the appearance
* Customise the PageTemplate, ViewTemplate or EditTemplate to change the composition of the page and the layout of individual tiddlers
* Use off-the-shelf themes from [[TiddlyThemes|http://tiddlythemes.com/]]
* Visit the [[Configuration]] summary to see all the special configuration tiddlers
* Use TiddlyBookmarklets for low level hacking of TiddlyWiki documents
There are also a bunch of TiddlyWikiTools that you can use to enhance TiddlyWiki.
Several [[Macros]] including the TodayMacro take a DateFormatString as an optional argument. This string can be a combination of ordinary text, with some special characters that get substituted by parts of the date:
* {{{DDD}}} - day of week in full (eg, "Monday")
* {{{ddd}}} - short day of week (eg, "Mon")
* {{{DD}}} - day of month
* {{{0DD}}} - adds a leading zero
* {{{DDth}}} - adds a suffix
* {{{WW}}} - ISO-8601 week number of year
* {{{0WW}}} - adds a leading zero
* {{{MMM}}} - month in full (eg, "July")
* {{{mmm}}} - short month (eg, "Jul")
* {{{MM}}} - month number
* {{{0MM}}} - adds leading zero
* {{{YYYY}}} - full year
* {{{YY}}} - two digit year
* {{{wYYYY}}} - full year with respect to week number
* {{{wYY}}} two digit year with respect to week number
* {{{hh}}} - hours
* {{{0hh}}} - adds a leading zero
* {{{hh12}}} - hours in 12 hour clock
* {{{0hh12}}} - hours in 12 hour clock with leading zero
* {{{mm}}} - minutes
* {{{0mm}}} - minutes with leading zero
* {{{ss}}} - seconds
* {{{0ss}}} - seconds with leading zero
* {{{am}}} or {{{pm}}} - lower case AM/PM indicator
* {{{AM}}} or {{{PM}}} - upper case AM/PM indicator
[[Начало]]
[[Быстрый старт]]
[[Справка по TiddlyWiki]]
Deletes the current tiddler. A confirmation dialogue is displayed unless disabled with the ConfirmBeforeDeleting checkbox in AdvancedOptions. It is used with the ToolbarMacro like this:
{{{
<<toolbar deleteTiddler>>
}}}
TiddlyWiki is now owned by UnaMesa, a non-profit foundation. Part of it's purpose is to provide a means for people who enjoy using TiddlyWiki to usefully reward the members of the community who have helped to create it, and so we will be exploring ways of accepting and distributing donations. For the moment, we don't have a formal scheme, but would encourage people to donate directly to individuals where they can.
<<<
On a personal note (writes JeremyRuston), in the two years that I had a personal donation account before I took up a [[commercial position with BT|http://jermolene.wordpress.com/2007/05/29/i-for-one-welcome-my-new-bt-overlords/]], just under a 100 people donated a total of nearly £1500 via PayPal. Knowing how much effort it is to make such a payment, I'm truly grateful to everyone who took the trouble, many thanks. I used the money to buy camera equipment, a [[hobby|http://flickr.com/photos/jermy]] that I couldn't have pursued at the time otherwise.
<<<
{{downloadButton{
|<<download>>|

[[Advanced options >>|Advanced download options]]
/***
|''Name:''|DownloadTiddlyWikiPlugin|
|''Description:''|Download TiddlyWiki according to browser type|
|''Version:''|0.0.8|
|''Date:''|Aug 26, 2008|
|''Source:''|http://www.tiddlywiki.com/#DownloadTiddlyWikiPlugin|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.4.1|
***/

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

config.macros.download = {};

merge(config.macros.download,{
	label: "download",
	prompt: "Download TiddlyWiki",
	className: "chunkyButton"});

config.macros.download.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
	var span = createTiddlyElement(place,"span",null,this.className);
	createTiddlyButton(span,params[0]||this.label,params[1]||this.prompt,this.onClick);
};

config.macros.download.onClick = function(ev)
{
	// display the tiddler containing the instructions
	var e = ev || window.event;
	var title = "Installation";
	var url = config.browser.isSafari || config.browser.isOpera ? 'http://www.tiddlywiki.com/empty.zip' :'http://www.tiddlywiki.com/empty.download';
	if(config.browser.isOpera || config.browser.isWindows) {
		story.displayTiddler(target,title);
		window.setTimeout(function() {document.location.href = url;},300);
	} else {
		// put an iframe in the target instructions tiddler to start the download
		var html = '<html><iframe src="' + url + '" style="display:none"></html>';
		var tiddler = store.getTiddler(title);
		var oldText = tiddler.text;
		tiddler.text = html + tiddler.text;
		var target = resolveTarget(e);
		story.closeTiddler(title,true);
		story.displayTiddler(target,title);
		tiddler.text = oldText;
	}
	return false;
};

} //# end of 'install only once'
//}}}
Try holding down the alt- or shift-key while clicking on a link to a tiddler, on the 'options' button or on the CloseButton for a tiddler. Kind of a respectful homage to Mac OS X, which does something similar for many of its system animations. (On browsers like InternetExplorer that use the shift key to open a new window, it's best to use the alt-key).
Switches the current tiddler to the current edit view. It is used with the ToolbarMacro like this:
{{{
<<toolbar editTiddler>>
}}}
~TiddlyWiki is made up of chunks of information called tiddlers. You're reading a tiddler called 'Editing' right now (a [[glossary of terms|http://www.tiddlywiki.org/wiki/TiddlyWiki_Glossary]] appears on ~TiddlyWiki.org, by the way!)

When you open an empty ~TiddlyWiki file for the first time, you'll be presented with a tiddler called "~GettingStarted". This contains links to tiddlers to help you define the main attributes of your ~TiddlyWiki; the Title, Sub-title and Main Navigation (see [[Configuration]]). Click on the links to access these tiddlers.

You will notice that each tiddler has a command menu in it's top right corner (close, edit, and so on). You can use this to send the tiddler into edit mode, or if you prefer you can simply double click the tiddler when it's in read mode. When you're finished, click on done.

If you'd like your tiddlers to be assigned to you, you can enter your name in the relevant field on the right hand side (the 'sidebar'). If you can't see this field, click on [[this link|InterfaceOptions]] to reveal it.

There are two ways to make links between tiddlers. If you're linking to a tiddler which already exists, put the tiddler name in double square brackets (Double click here, and you'll see double square brackets around the word [[example]]). You can use this technique to point to (and create) a new tiddler, or alternatively just write the tiddler name by joining words starting with capital letters, LikeThis. When you save the tiddler and click on the link, you can then add content to your new tiddler.
{{{
[img[title|filename]]
[img[filename]]
[img[title|filename][link]]
[img[filename][link]]
}}}
Images can be included by their filename or full URL. It's good practice to include a title to be shown as a tooltip, and when the image isn't available. An image can also link to another tiddler or or a URL
[img[Romanesque broccoli|fractalveg.jpg][http://www.flickr.com/photos/jermy/10134618/]]
{{{
[img[Fractal vegetable|fractalveg.jpg]]
[img[This is shown as a tooltip|http://example.com/image.jpg]]
[img[http://example.com/image.jpg]]
[img[http://example.com/image.jpg][ExampleDotCom]]
}}}
The tooltip is optional.

[<img[Forest|forest.jpg][http://www.flickr.com/photos/jermy/8749660/]][>img[Field|field.jpg][http://www.flickr.com/photos/jermy/8749285/]]You can also float images to the left or right: the forest is left aligned with {{{[<img[}}}, and the field is right aligned with {{{[>img[}}}.
@@clear(left):clear(right):display(block):You can use CSS to clear the floats@@
{{{
[<img[A woody bit of Hampstead Heath|forest.jpg]]
[>img[A field near Milton Keynes|field.jpg]]
}}}
There's now an option under InterfaceOptions to allow TiddlyWiki's animation effects to be turned off.
/***
|''Name:''|ExamplePlugin|
|''Description:''|To demonstrate how to write TiddlyWiki plugins|
|''Version:''|2.0.3|
|''Date:''|Sep 22, 2006|
|''Source:''|http://www.tiddlywiki.com/#ExamplePlugin|
|''Author:''|JeremyRuston (jeremy (at) osmosoft (dot) com)|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
***/

//{{{

// Uncomment the following line to see how the PluginManager deals with errors in plugins
// deliberateError();

// Log a message
pluginInfo.log.push("This is a test message from " + tiddler.title);

//}}}
#displayArea {background-color: #ffccff; }
#mainMenu {border: 1px solid #ffff88; }
#commandPanel {background-color: #008800; }
config.animFast = 0.12; // Speed for animations (lower == slower)
config.animSlow = 0.01; // Speed for EasterEgg animations
config.views.wikified.toolbarEdit.text = "Edit away, it won't get saved";
~TiddlyWiki is being used for all kinds of things:
* Many people are using the [[GTD ("Getting Things Done")|GTDTiddlyWiki]] ~TiddlyWiki variant for personal productivity
* There have been some interesting experiments in TiddlyWikiFiction
* Garrett Lisi has published his work on Deferential Geometry in a paper named [[An Exceptionally Simple Theory of Everything|http://deferentialgeometry.org]]
* Phil Hawksworth has used ~TiddlyWiki to create a flexible task management tool called [[TeamTasks|http://www.getteamtasks.com]]
* Paul Downey and Phil Hawksworth have created a note sharing tool called [[RippleRap|http://www.ripplerap.com]]
* An "electronic wallet" for storing passwords and other confidential information called [[TiddlyFolio|http://tiddlyfolio.tiddlyspot.com/]]
* [[Video tutorials interspersed with Q&A|http://files.unamesa.org/MORE/MORE.html]] by UnaMesa
* By teachers in Massachusetts to [[teach mathematics|http://luceatlux.net/mcasmath10/]]
* By schools in South Australia to [[distribute class materials to students|https://secure.ait.org/wiki/background.htm]]
* A [[music and culture site|http://udigrudi.net/]] (in Portugese)
* Jonny ~LeRoy has created a ~TiddlyWiki based on [[resizable windows|http://tiddlyhome.bidix.info/desk/]]
* Miguel Centellas has created an [[extensive guide to Bolivian politics|http://www.centellas.org/politics/politiddly.html]]
* BT is using a ~TiddlyWiki file for their [[Open source website|http://www.bt.com/opensource]]
* Elise Springer, a philospher at Wesleyan University in Connecticut, USA, is using ~TiddlyWiki for her [[homepage|http://espringer.web.wesleyan.edu/]] and for [[Reasoning Well|http://reasoningwell.tiddlyspot.com/]], a wiki for her Philosophy faculty
* The website of a [[body-building club in Paris|http://www.superphysique.net/]]
Also, see TiddlyWikiAdaptations
Like most wikis, ~TiddlyWiki supports a range of simplified character formatting. You can find a list on the [[TiddlyWiki.org website|http://tiddlywiki.org/wiki/TiddlyWiki_Markup]]. 

To see all the tiddlers on this website that concern formatting, click on the 'formatting' link in the box that appears to the right of this tiddler.
The following features are included with the standard download of ~TiddlyWiki:
!Browsers
* You can ''view'' ~TiddlyWiki files on all major desktop browsers on Windows, Macintosh and Linux and many mobile browsers such as the Apple iPhone and the Nokia 770/N800
* You can ''save changes'' to local ~TiddlyWiki files with modern versions of FireFox, [[Opera]], InternetExplorer for Windows, [[Safari]], and [[Camino]] - click [[here|Browsers]] for browser version details
* Community member ~BidiX has created an adaptation of the ~TiddlyWiki user interface [[specially for the iPhone|http://www.apple.com/webapps/productivity/itwatiddlywikiforiphone.html]]
!Tools
* Fully configurable navigation, tagging and searching capability, all using javascript within ~TiddlyWiki itself
* ~TiddlyWiki contains a BackstageArea for handy access to management tools including [[importing|ImportTiddlers]] and [[synchronisation|http://www.tiddlywiki.org/wiki/Dev:Server_Adaptor_Mechanism]] of tiddlers with external files and servers. These tools can also be used to manage a wide range of [[Plugins]] which have been developed by the [[TiddlyWiki community|Help and Support]].
!Content
* Full text formatting including MonospacedText, ExtendedFormatting, NonWikiWordLinks, WikiWordEscape, PrettyLinks, SubHeadings, BulletPoints, NumberedBulletPoints, [[Tables]], BlockQuotes, HorizontalRules and the ability to use a CustomCssClass and  InlineHTML
* EmbeddedImages
* [[Macros]] providing rich interactive features, including [[Gradients|GradientMacro]]
!Miscellaneous
* InterfaceOptions and AdvancedOptions, including the ability to GenerateAnRssFeed, SaveBackups and AutoSave
* KeyboardShortcuts so you can finish editing a tiddler with ~Control-Enter or abandon it with Escape
* Extensive StartupParameters to control the behaviour of ~TiddlyWiki through specially crafted ~URLs
* There are [[translations]] of ~TiddlyWiki available in many languages, including Chinese, French, German, Spanish and Portuguese
If you've any comments, corrections or observations about TiddlyWiki, the best way to get our attention is to post to the [[Community]] groups -- or write a blog entry.
~TiddlyWiki works well in ~FireFox v1.0 and above. If you're experiencing problems, make sure you've followed the [[installation guidelines|Installation]].

When saving ~TiddlyWiki in ~FireFox for the first time, you can run into problems if you accidentally click 'Deny' on the dialog, and select //Remember this decision//.

To reverse the effects, first locate the file {{{prefs.js}}} in your ~FireFox profile directory:
* Under Windows you'll find it at something like {{{C:\Documents and Settings\Jeremy\Application Data\Mozilla\Firefox\Profiles\o3dhupu6.default\prefs.js}}}, where {{{Jeremy}}} is the name of your windows profile and {{{o3dhupu6}}} will be a similar string of gobbledegook. 
* On the Mac it'll be at {{{~/Library/Application Support/Firefox/Profiles/o3dhupu6.default/prefs.js}}} 
* On Linux you can find this file at {{{~/.mozilla/firefox/o3dhupu6.default/prefs.js}}}.

Open the file in a text editor and find the line {{{user_pref("capability.principal.codebase.p0.denied", "UniversalXPConnect");}}} and simply replace the word {{{denied}}} with {{{granted}}}.
//(Thanks to JonScully for figuring out this fix)//

Firefox users should be aware that GreaseMonkey can break TiddlyWiki. There's also a rather unpredictable FireFoxKeyboardIssue.
Under FireFox, TiddlyWiki can get into a state where it ignores the arrow keys on the keyboard but accepts ordinary alphanumeric input. The triggers for this behaviour are unclear, but it doesn't just affect TiddlyWiki. The solution appears to be to locate the file {{{compreg.dat}}} in your FireFox profile folder and rename it to {{{compreg.dat.old}}}.
Released in September 2004, the [[first version|firstversion.html]] was pretty basic, weighing in at 52KB.
Here's one way to get a Flickr badge in TiddlyWiki:

<html>
<a href="http://www.flickr.com" style="text-align:center;">www.<strong style="color:#3993ff">flick<span style="color:#ff1c92">r</span></strong>.com</a><br>
<iframe style="background-color:#ffffff; border-color:#ffffff; border:none;" width="113" height="151" frameborder="0" scrolling="no" src="http://www.flickr.com/apps/badge/badge_iframe.gne?zg_bg_color=ffffff&zg_person_id=35468148136%40N01" title="Flickr Badge"></iframe>
</html>

Here's the HTML code to insert in a tiddler:
{{{
<html>
<a href="http://www.flickr.com" style="text-align:center;">www.<strong style="color:#3993ff">flick<span style="color:#ff1c92">r</span></strong>.com</a><br>
<iframe style="background-color:#ffffff; border-color:#ffffff; border:none;" width="113" height="151" frameborder="0" scrolling="no" src="http://www.flickr.com/apps/badge/badge_iframe.gne?zg_bg_color=ffffff&zg_person_id=35468148136%40N01" title="Flickr Badge"></iframe>
</html>
}}}

You'll need to know your Flickr person ID, which should replace the value "35468148136%40N01" in the HTML. There's a useful [[Flickr idGettr|http://eightface.com/code/idgettr/]] to help with this.
~TiddlyWiki has long been used as a personal productivity tool, geared towards David Allen's [[Getting Things Done|http://en.wikipedia.org/wiki/Getting_Things_Done]] (GTD) methodology. ~TiddlyWiki lends itself to the GTD approach due to it's portability, ease of use, and ability to work without a web connection.

The [[original|http://shared.snapgrid.com/gtd_tiddlywiki.html]] adaptation is based on an obsolete, older version of ~TiddlyWiki; if you want to have the GTD look-and-feel but still be able to use the latest ~TiddlyWiki features, check out the following links:
*[[Tom Otvos' d-cubed adaptation|http://www.dcubed.ca/]]
*[[Simon Baird's Monkey GTD adaptation|http://www.tiddlywiki.org/wiki/Getting_started_with_MonkeyGTD_2.1_alpha]]
*[[Clint Checkett's GTDTiddlyWiki plus adaptation|http://www.checkettsweb.com/tw/gtd_tiddlywiki.htm]]
A new feature for the ThirdVersion of TiddlyWiki is the ability to generate an RssFeed of its content. You can flick it on with a new addition to the InterfaceOptions. If enabled, it automatically saves an RSS 2.0 format file with the last few changed tiddlers in it. It's given the same filename as the TiddlyWiki file but with the ".xml" extension. Like all TiddlyWiki features, it's experimental, and will probably be a bit temperamental in your feedreader until the bugs are ironed out.

Note that you must set the tiddler SiteUrl to be the URL where your TiddlyWiki will be published. (Don't put leading spaces or line breaks before or after the URL).
Once you've successfully [[installed|Installation]] ~TiddlyWiki, the following links will help you get up and running.

[[Editing]]
[[Saving|SaveChanges]]
[[SpecialTiddlers]]
[[Formatting|ExtendedFormatting]]
[[Searching|Search]]
[[Tagging|Tags]]
[[Customisation]]
[[Help and Support]]
|''URL:''|http://gimcrackd.com/etc/src/|
|''Description:''|Gimcrack'd: Code and Other Oddments|
|''Author:''|ChrisKlimas|
<<gradient horiz #bbbbbb #eeeeee #ffffff>>The new GradientMacro allows simple horizontal and vertical coloured gradients. They are constructed from coloured HTML elements, and don't require any images to work.>>
The GradientMacro is an Extended Macro that processes the text after it up until the next '>>' sequence. It looks like this:
{{{
<<gradient vert #ffffff #ffdddd #ff8888>>gradient fill>>
}}}
The first parameter can be ''vert'' or ''horiz'' to indicate the direction of the gradient. The following parameters are two or more colours (CSS RGB(r,g,b) format is also acceptable). The GradientMacro constructs a smooth linear gradient between each of the colours in turn.

| <<gradient vert #ffffff #ffdddd #ff8888>>No images were harmed in the making of this gradient fill>> | <<gradient vert #ffffff #ddffdd #88ff88>>No images were harmed in the making of this gradient fill>> | <<gradient vert #ffffff #ddddff #8888ff>>No images were harmed in the making of this gradient fill>> |

Inline CSS definitions can be added to gradient fills like this:

<<gradient vert #000000 #660000 #aa2222>>color:#ffffff;font-size:12pt;Darkness>>
{{{
<<gradient vert #000000 #660000 #aa2222>>color:#ffffff;font-size:12pt;Darkness>>
}}}

You can make an abrupt transition in the gradient by using the "snap" prefix, like this:

{{{
<<gradient vert #000000 #999999 snap:#aa2222 #ff444>>color:#ffffff;font-size:24pt;padding:4pt;More darkness>>
}}}
<<gradient vert #000000 #999999 snap:#aa2222 #ff444>>color:#ffffff;font-size:24pt;padding:4pt;More darkness>>
Several popular GreaseMonkey scripts can cause some or all features of TiddlyWiki to stop working - the default Linkify script seems to be particularly troublesome. There doesn't seem to be a //solid// way to disable GreaseMonkey from within TiddlyWiki (which is technically entirely understandable but does lead to a fairly grim user experience).
TiddlyWiki makes a great GuerillaWiki in situations where it's not practical to use a traditional wiki.

For instance, in a corporate setting, persuading an over-worked IT department to install you a Wiki server for you isn't always going to be possible overnight. And your PC is locked down so you can't install a conventional Wiki yourself. But, equally, you can't go and use one of the public hosted Wiki services because your Information Security department would not allow all that corporate data to flow into an outside server.

TiddlyWiki slices through those barriers by being usable on virtually all PCs.
Welcome to TiddlyWiki!

~TiddlyWiki is a single html file which has all the characteristics of a [[wiki|WikiWikiWeb]] - including all of the content, the functionality (including editing, saving, tagging and searching) and the style sheet. Because it's a single file, it's very portable - you can email it, put it on a web server or share it via a [[USB stick|WikiOnAStick]].

''But it's not just a wiki!'' It has very powerful plugin capabilities, so it can also be used to build new tools. You have full control over how it looks and behaves. For example, ~TiddlyWiki is already being used as:
*A personal notebook
*A GTD ("Getting Things Done") productivity tool
*A collaboration tool
*For building websites (this site is a ~TiddlyWiki file!)
*For rapid prototyping
*...and much more!
You can import and export data to and from all sorts of places. Check out some of the [[Examples]] of ~TiddlyWiki in use, and the [[Features]] that are available.

You can see the web functionality of ~TiddlyWiki by clicking on some of the links on this website. Double click some of the text to see 'edit mode'. For the full range of functions, including editing and saving changes, download and install a copy of the basic version and then follow the guidelines in [[Getting Started|GettingStarted]]. Have fun!

<<tiddler Download>>
/***
|Name|HelloWorldMacro|
|Created by|SimonBaird|
|Location|http://simonbaird.com/mptw/#HelloWorldMacro|
|Version|1.1|
|Requires|~TW2.x|
!Description
It's a Hello World TiddlyWiki macros.

!History
* 11-Jan-06, version 1.1, updated for ~TW2.0

!Examples
|!Source|!Output|h
|{{{<<helloWorld dude>>}}}|<<helloWorld dude>>|
|{{{<<helloWorld 'to everyone'>>}}}|<<helloWorld 'to everyone'>>|
(You can use (single or double) quotes or double square brackets for params with spaces)

!Notes
This is intended to help you get started with customising your TW. To make the macro work you have to give this tiddler a tag of systemConfig then save and reload. To learn more about customising Tiddlywiki? Look at other people's plugins or... click View, Source in your browser and start reading. :)

!Code
***/
//{{{
config.macros.helloWorld = {};
config.macros.helloWorld.handler = function (place,macroName,params,wikifier,paramString,tiddler) {
	var who = params.length > 0 ? params[0] : "world";
	 wikify("Hello //" + who + "// from the '" + macroName + "' macro in tiddler [[" + tiddler.title + "]].", place);
}

//}}}
[>img[tiddlywiki.org logo|http://trac.tiddlywiki.org/chrome/site/tworg_logo_med.jpg][http://www.tiddlywiki.org]]~TiddlyWiki today is the result of the efforts of dozens of people around the world generously contributing their time and skill, and offering considerable help and support. 

If you'd like help getting your ~TiddlyWiki project off the ground, perhaps the best place to start is the community wiki at http://www.tiddlywiki.org. It contains detailed project documentation, as well as the master copy of the ~TiddlyWiki source code, and a system for tracking bugs and enhancement requests. The community welcomes [[contributions|Contribute]].
!Discussion forums
Also, there are two Google Group discussion forums for discussions about ~TiddlyWiki, whether basic entry level questions or more complex challenges! They are the best places to ask questions about ~TiddlyWiki, and to connect with other enthusiasts:
* A ~TiddlyWiki group for general discussion, bug reports and announcements at http://groups.google.com/group/TiddlyWiki
* A ~TiddlyWikiDev group for discussion about ~TiddlyWiki development at http://groups.google.com/group/TiddlyWikiDev
!~Non-English resources
There are a number of resources for non-English language speakers:
* ~TiddlyWikiFR, in French, at http://groups.google.com/group/TiddlyWikiFR
* ~TiddlyWiki 華語支援論壇, in Chinese, at http://groups.google.com/group/TiddlyWiki-zh
* ~TiddlyWikiPT, in Brazilian Portuguese, at http://groups.google.com.br/group/tiddlywikipt
* A guide to [[TiddlyWiki in Japanese|http://www.geocities.jp/potto372/tiddlywiki/tiddlywikinote.html]]
!Tutorials and guides
The ~TiddlyWiki community have created several tutorials and guides. Here are some of the most popular ones:
* Dave Gifford's [[TiddlyWiki for the Rest of Us|http://www.giffmex.org/twfortherestofus.html]] and his [[slideshow introduction|http://www.giffmex.org/blog/?p=23]]
* Morris Gray's [[TW Help - TiddlyWiki help file for beginners|http://tiddlyspot.com/twhelp/]]
* Dmitri Popov's [[TiddlyWiki quick reference card|http://nothickmanuals.info/doku.php/cheatsheets]]
* Julie Starr's [[Tiddler Toddler|http://tiddlertoddler.tiddlyspot.com/]], documenting the learning curve from a beginner's perspective
* Screencasts from [[JimVentola|http://faculty.massasoit.mass.edu/jventola/videocasts/tidhelp2/tidhelp2.html]], [[LeonKilat|http://max.limpag.com/2006/09/07/using-a-tiddlywiki-a-video-guide/]] and [[Phil Whitehouse|http://www.youtube.com/watch?v=ezNScBd7_h4]]
!Developers
Michael Mahemoff has written a very helpful outline of the architecture of ~TiddlyWiki: [[Part 1|http://softwareas.com/tiddlywiki-internals-1-of-3-architectural-concepts]], [[Part 2|http://softwareas.com/tiddlywiki-internals-2-of-3-list-of-javascript-files]] and [[Part 3|http://softwareas.com/tiddlywiki-internals-3-of-3-key-javascript-classes-and-files]]

Many ~TiddlyWiki hackers hang out on the ~TiddlyWiki IRC room at irc://irc.freenode.net/TiddlyWiki
!Publications and articles
~TiddlyWiki has also appeared in a number of publications and articles:
* Pao-hsu Shih, a professor at Taipai University in Taiwan, has written an [[Introduction to TiddlyWiki|http://www.wunan.com.tw/bookdetail.asp?no=8852]] in Chinese
* Dmitri Popov discusses ~TiddlyWiki in [[Writer for Writers and Advanced Users|http://www.lulu.com/content/221513]]
* Jeremy Wagstaff's [[The Power of Tiddly|http://www.loosewireblog.com/2007/11/the-power-of-ti.html]]
!Licence
~TiddlyWiki is published under a BSD licence, and is owned by the not-for-profit [[UnaMesa Foundation|http://www.unamesa.org/]].
This is an advanced option that lets you choose whether editting features are shown when a TiddlyWiki file is viewed over {{{http:}}} (as opposed to {{{file:}}}).

To publish a TiddlyWiki with the editting features hidden you'll need to create a tiddler tagged with 'systemConfig' and include in it the line:

{{{
config.options.chkHttpReadOnly = true;
}}}

End users can then override the setting using the AdvancedOptions panel.
You can divide a tiddler into
----
sections by typing four dashes on a line by themselves
The core TiddlyWiki code is regularly updated with bug fixes and new features. If you're using an earlier revision of TiddlyWiki, you should consider upgrading to the latest version.

The steps you need to take depend on which version of TiddlyWiki you are upgrading from. From version 2.4.0 onwards, you can upgrade to the latest version using the 'Upgrade' tab in the BackstageArea, as described below. If you're using an earlier version of TiddlyWiki, you'll need to follow [[these instructions|HowToUpgradeOlderTiddlyWikis]] instead.

! Upgrading from ~TiddlyWiki 2.4.0+ to the most recent version
* Open the BackstageArea by clicking the 'backstage' button at the top right
* Click on the 'Upgrade' tab
* Click on the 'Upgrade' button, and follow the prompts
The steps you need to take depend on which version of TiddlyWiki you are upgrading from. From version 2.4.0 onwards, you can upgrade to the latest version using the 'Upgrade' tab in the BackstageArea, as described in HowToUpgrade. If you're using an earlier version of TiddlyWiki, you'll need to follow these instructions instead:
! Upgrading from TiddlyWiki earlier than version 2.4.0 to the latest version
* Download a fresh, empty version of TiddlyWiki by right-clicking on [[this link|http://www.tiddlywiki.com/empty.html]], selecting 'Save target' or 'Save link' and saving it in a convenient location as (say) "mynewtiddlywiki.html"
* Open the new TiddlyWiki file in your browser
* Choose ''import'' from the BackstageArea at the top of the window (you may need to click the 'backstage' button at the upper right to show the BackstageArea)
* Click the ''browse'' button and select your original TiddlyWiki file (say, "mytiddlywiki.html") from the file browser
* Click the ''open'' button on the import wizard; a list of all of your tiddlers is displayed
* Click on the top-left checkbox to select all the tiddlers in the list
* Scroll down to the bottom of the wizard and ensure that the checkbox labelled //Keep these tiddlers linked to this server...// is ''clear''
* Click the ''import'' button
The most likely cause of the upgrade process not working properly is that one of the [[Plugins]] you're using is not compatible with a change in the new release. If so, you can repeat the process omitting the troublesome plugins.
Entities in HTML documents allow characters to be entered that can't easily be typed on an ordinary keyboard. They take the form of an ampersand (&), an identifying string, and a terminating semi-colon (;). There's a complete reference [[here|http://www.htmlhelp.com/reference/html40/entities/]]; some of the more common and useful ones are shown below. Also see [[Paul's Notepad|http://thepettersons.org/PaulsNotepad.html#GreekHtmlEntities%20HtmlEntitiesList%20LatinHtmlEntities%20MathHtmlEntities]] for a more complete list.

|>|>|>|>|>|>| !HTML Entities |
| &amp;nbsp; | &nbsp; | no-break space | &nbsp;&nbsp; | &amp;apos; | &apos; | single quote, apostrophe |
| &amp;ndash; | &ndash; | en dash |~| &amp;quot; | " | quotation mark |
| &amp;mdash; | &mdash; | em dash |~| &amp;prime; | &prime; | prime; minutes; feet |
| &amp;hellip; | &hellip; |	horizontal ellipsis |~| &amp;Prime; | &Prime; | double prime; seconds; inches |
| &amp;copy; | &copy; | Copyright symbol |~| &amp;lsquo; | &lsquo; | left single quote |
| &amp;reg; | &reg; | Registered symbol |~| &amp;rsquo; | &rsquo; | right  single quote |
| &amp;trade; | &trade; | Trademark symbol |~| &amp;ldquo; | &ldquo; | left double quote |
| &amp;dagger; | &dagger; | dagger |~| &amp;rdquo; | &rdquo; | right double quote |
| &amp;Dagger; | &Dagger; | double dagger |~| &amp;laquo; | &laquo; | left angle quote |
| &amp;para; | &para; | paragraph sign |~| &amp;raquo; | &raquo; | right angle quote |
| &amp;sect; | &sect; | section sign |~| &amp;times; | &times; | multiplication symbol |
| &amp;uarr; | &uarr; | up arrow |~| &amp;darr; | &darr; | down arrow |
| &amp;larr; | &larr; | left arrow |~| &amp;rarr; | &rarr; | right arrow |
| &amp;lArr; | &lArr; | double left arrow |~| &amp;rArr; | &rArr; | double right arrow |
| &amp;harr; | &harr; | left right arrow |~| &amp;hArr; | &hArr; | double left right arrow |

The table below shows how accented characters can be built up by subsituting a base character into the various accent entities in place of the underscore ('_'):

|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>| !Accented Characters |
| grave accent | &amp;_grave; | &Agrave; | &agrave; | &Egrave; | &egrave; | &Igrave; | &igrave; | &Ograve; | &ograve; | &Ugrave; | &ugrave; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| acute accent | &amp;_acute; | &Aacute; | &aacute; | &Eacute; | &eacute; | &Iacute; | &iacute; | &Oacute; | &oacute; | &Uacute; | &uacute; | &nbsp; | &nbsp; | &Yacute; | &yacute; | &nbsp; | &nbsp; |
| circumflex accent | &amp;_circ; | &Acirc; | &acirc; | &Ecirc; | &ecirc; | &Icirc; | &icirc; | &Ocirc; | &ocirc; | &Ucirc; | &ucirc; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| umlaut mark | &amp;_uml; | &Auml; | &auml; |  &Euml; | &euml; | &Iuml; | &iuml; | &Ouml; | &ouml; | &Uuml; | &uuml; | &nbsp; | &nbsp; | &Yuml; | &yuml; | &nbsp; | &nbsp; |
| tilde | &amp;_tilde; | &Atilde; | &atilde; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &Otilde; | &otilde; | &nbsp; | &nbsp; | &Ntilde; | &ntilde; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| ring | &amp;_ring; | &Aring; | &aring; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| slash | &amp;_slash; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &Oslash; | &oslash; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; |
| cedilla | &amp;_cedil; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &nbsp; | &Ccedil; | &ccedil; |
To import tiddlers from another ~TiddlyWiki file, or from an external website, follow these instructions.
#If the tiddler is on an external site, first copy the URL of the site which includes the tiddler you'd like to download into your clipboard (eg http://www.tiddlytools.com)
#Open your local ~TiddlyWiki file from your computer.
#Click on the 'Backstage' link that you can see at the very top right hand side of the page.
#In the menu, click on 'Import'. You will then see a window that looks like this - and you can follow the guidance from there. Note that you may need to grant authorisation to your ~TiddlyWiki file to import tiddlers - this is fine and expected.
<<importTiddlers>>
//Note also that the popular [[Firebug|http://www.joehewitt.com/software/firebug/]] extension for Firefox interferes with ImportTiddlers if its "Show XMLHttpRequest" option is switched on//
When you type more than three characters in the search box at the upper right, any matching tiddlers are automatically displayed with the text highlighted. There's a couple of minor issues: the highlights don't get removed when you clear the search, and occasionally, on some browsers, keystrokes get missed if you type quickly so you may need to click the 'search' button to manually trigger the search.
TiddlyWiki lets you write ordinary HTML by enclosing it in {{{<html>}}} and {{{</html>}}}:

<html>
<a href="javascript:;" onclick="onClickTiddlerLink(event);" tiddlyLink="TiddlyWiki" style="background-color: yellow;">Link to wikiwords from HTML</a>
</html>

The source for the above is:

{{{
<html>
<div style="background-color: yellow;">
<a href="javascript:;" onclick="onClickTiddlerLink(event);" tiddlyLink="Macros">Link to wikiwords from HTML</a>
</div>
</html>
}}}

HTML can enable some exotic new features (like [[embedding GMail and Outlook|http://groups.google.com/group/TiddlyWiki/browse_thread/thread/d363303aff5868d0/056269d8409d121f?lnk=st&q=embedding+gmail&rnum=1#056269d8409d121f]] in a TiddlyWiki). However it doesn't work for some JavaScript code libraries; see CustomMarkup for another way to include custom HTML in your TiddlyWiki.
The following installation guidelines have been created to cover the vast majority of browsers and operating systems.

If you are still having trouble installing ~TiddlyWiki after checking these guidelines, check the [[list of browsers|Browsers]] to make sure your browser and operating system are supported. And you can always [[turn to the community|Help and Support]] for help!
!Installation guidelines
[[Firefox on Mac OS X|Installation guidelines: Firefox on Mac OS X]]
[[Firefox on Windows Vista|Installation guidelines: Firefox on Windows Vista]]
[[Firefox on Windows XP|Installation guidelines: Firefox on Windows XP]]
[[Firefox on Ubuntu|Installation guidelines: Firefox on Ubuntu]]
[[Internet Explorer on Windows Vista|Installation guidelines: Internet Explorer on Windows Vista]]
[[Internet Explorer on Windows XP|Installation guidelines: Internet Explorer on Windows XP]]
[[Safari on Mac OS X|Installation guidelines: Safari on Mac OS X]]
[[Opera on Mac OS X|Installation guidelines: Opera on Mac OS X]]
Follow these easy steps to get started! Note that these guidelines are for Firefox v3.0.1 running on Mac OS X 10.5.4.

''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Installation]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or Documents folder. Make sure you keep the .html file extension and leave the "Save As: Hypertext" default option as it is.
[img[images/step1mac.jpg]]
!Step 2 - Download complete
Empty ~TiddlyWiki files are very small, and download should be completed quickly. You can now either launch the file from the download pane (shown below, double click on the file name to launch), or open your finder to open the file from there.
[img[images/step2mac.jpg]]
!Step 3 - Open file
You'll be asked if you're sure you want to open the file - click "Open".
[img[images/step3mac.jpg]]
!Step 4 - Grant authority
When you try to save your changes for the first time, Firefox may ask you to grant access to the file system. You will need to 'Allow' this for ~TiddlyWiki changes to be saved, and we recommend you tick the 'Remember this decision' checkbox so this dialogue box doesn't appear each time.

[img[images/step4mac.jpg]]

!Step 5 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these easy steps to get started! Note that these guidelines are for Firefox v3.0.1 running on Ubuntu version 8.0.4 (Hardy Heron).

''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Installation]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or Documents folder. Make sure you keep the file type as HTML Document.

[img[images/step1ubuntu.png]]
!Step 2 - Download complete
Empty ~TiddlyWiki files are very small, and download should be completed quickly. You can now either launch the file from the download pane (shown below, double click on the file name to launch), or open your finder to open the file from there.

[img[images/step2ubuntu.png]]

!Step 3 - Grant authority
When you try to save your changes for the first time, Firefox may ask you to grant access to the file system. You will need to 'Allow' this for ~TiddlyWiki changes to be saved, and we recommend you tick the 'Remember this decision' checkbox so this dialogue box doesn't appear each time.

[img[images/step3ubuntu.png]]

!Step 4 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
<<tiddler [[Installation guidelines: Firefox on Windows Vista]]>>
Follow these steps to get started! These guidelines are for Firefox 3.0.1 running on Microsoft Windows Vista 6.0.0. Hopefully they will be helpful for your setup too.

''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Installation]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or Documents folder. Make sure you leave the "Save as type: HTML Document" default option as it is. Then click 'Save'.

[img[images/step1vistaff.jpg]]
!Step 2 - Open file
Click on the file name in the Download dialogue box. This will open your ~TiddlyWiki file, and you'll be able to start editing immediately - but you'll need to complete Step 3 below to save your changes.

[img[images/step2vistaff.jpg]]
!Step 3 - Enable advanced features
When you try to save changes for the first time, this dialogue box will appear. These features will enable the saving mechanism. Tick the 'Remember this decision' checkbox and then click on 'Allow'.

[img[images/step3vistaff.jpg]]
!Step 4 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these steps to get started! These guidelines are for Firefox 3.0.1 running on Microsoft Windows XP, Service Pack 3. Hopefully they will be helpful for your setup too.

''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Installation]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or My Documents folder. Make sure you leave the "Save as type: Firefox Document" default option as it is. Then click 'Save'.

[img[images/step1xpff.jpg]]
!Step 2 - Open file
Double click on the file name in the Download dialogue box, shown below. This will open your ~TiddlyWiki file, and you'll be able to start editing immediately - but you'll need to complete Step 3 below to save your changes.

[img[images/step2xpff.jpg]]
!Step 3 - Enable advanced features
When you try to save changes for the first time, this dialogue box will appear. These features will enable the saving mechanism. Tick the 'Remember this decision' checkbox and then click on 'Allow'.
[img[images/step3xpff.jpg]]
!Step 4 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
<<tiddler [[Installation guidelines: Internet Explorer on Windows Vista]]>>
Follow these steps to get started! These guidelines are for Internet Explorer 7.0 running on Microsoft Windows Vista 6.0.0. Hopefully they will be helpful for your setup too.

''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Installation]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or Documents folder. Make sure you leave the "Save as type: HTML Document" default option as it is. Then click 'Save'.

[img[images/step1vista.jpg]]
!Step 2 - Open folder
Once the download has been completed, ''don't open the file yet'' - a minor modification is required before ~TiddlyWiki will work! Click on 'Open Folder'.

[img[images/step2vista.jpg]]
!Step 3 - Modify properties
In the folder, right click on the file name and select 'Properties' from the bottom of the contextual menu.

[img[images/step3vista.jpg]]
!Step 4 - Unblock file
In order to allow saving, you need to Unblock the file. Select 'Unblock' near the bottom of the dialogue box, then click on 'OK'. If the Unblock button doesn't appear, then you don't need to worry about it - click on OK and proceed to step 5.

[img[images/step4vista.jpg]]

!Step 5 - Open file
Double click on the file name to open the file. Internet Explorer takes special care to block javascript from untrusted sources, so a screen will appear with a yellow bar at the top and a warning in red. Click on the yellow bar (this will make it turn blue, as shown below), and select 'Allow Blocked Content...'.

[img[images/step5vista.jpg]]

!Step 6 - Allow active content
~TiddlyWiki contains 'active content' that, for example, allows search and tagging to function. Approve this active content by clicking on 'Yes'.
[img[images/step6vista.jpg]]
!Step 7 - Enable saving mechanism
One final hurdle! When you save for the first time, you'll be prompted to allow the activity. Click on 'Yes'.
[img[images/step7vista.jpg]]
!Step 8 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these steps to get started! These guidelines are for Internet Explorer 7.0 running on Microsoft Windows XP, Service Pack 3. Hopefully they will be helpful for your setup too.

''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Installation]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or My Documents folder. Make sure you leave the "Save as type: HTML Document" default option as it is. Then click 'Save'.

[img[images/step1xpie.jpg]]
!Step 2 - Open folder
Once the download has been completed, ''don't open the file yet'' - a minor modification is required before ~TiddlyWiki will work! ''Click on 'Open Folder'''.

[img[images/step2xpie.jpg]]
!Step 3 - Modify properties
In the folder, right click on the file name and select 'Properties' from the bottom of the contextual menu.

[img[images/step3xpie.jpg]]
!Step 4 - Unblock file
In order to allow saving, you need to Unblock the file. Select 'Unblock' near the bottom of the dialogue box, then click on 'OK'. If the Unblock button doesn't appear, then you don't need to worry about it - click on OK and proceed to step 5.

[img[images/step4xpie.jpg]]

!Step 5 - Open file
Now you've unblocked the file, you can double click on the file name to open the file. Internet Explorer takes special care to block javascript from untrusted sources, so a screen will appear with a yellow bar at the top and a warning in red. Click on the yellow bar (this will make it turn blue, as shown below), and select 'Allow Blocked Content...'.

[img[images/step5xpie.jpg]]
!Step 6 - Allow active content
~TiddlyWiki contains 'active content' that, for example, allows animations to function. Approve this active content by clicking on 'Yes'.
[img[images/step6xpie.jpg]]
!Step 7 - Enable saving mechanism
One final hurdle! When you save for the first time, you'll be prompted to allow the activity. Click on 'Yes'.
[img[images/step7xpie.jpg]]
!Step 8 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these easy steps to get started! Note that these guidelines are for Opera 9.5.1 running on Mac OS X 10.5.4, but will apply to several other configurations (including most other versions of [[Opera]])

''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Installation]] to find some that are right for you.''
!Step 1 - Download files
Download the zip file to a location of your choice.

[img[images/step1macopera.jpg]]
!Step 2 - Check files
Open the zip file, and then check in the resulting folder that you have automatically received two files:
*empty.html (this is your ~TiddlyWiki file)
*~TiddlySaver.jar (this is a java applet, which will make sure everything works in your chosen browser. Note a copy of this file ''must'' be kept in the same folder as any ~TiddlyWiki file you are using) 
[img[images/step2macopera.jpg]]
You can download the TiddlySaver file on it's own from [[here|http://www.tiddlywiki.com/TiddlySaver.jar]] if you need it.

Open the empty.html file to get started.
!Step 3 - Trust applet
The ~TiddlySaver.jar applet has been signed by [[UnaMesa|http://www.unamesa.org]], who hold the rights to ~TiddlyWiki on behalf of the community. You can find out more about the applet itself [[here|TiddlySaver]], and you'll need to click on 'Trust' in order for the ~TiddlyWiki to work. If you've accidentally clicked on 'Don't Trust' previously, don't worry - just restart the browser and you should get asked again.

[img[images/step3macopera.jpg]]
!Step 4 - You're done!
Thanks to the applet, you now have the full functionality of ~TiddlyWiki at your disposal. Be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these easy steps to get started! Note that these guidelines are for Safari 3.1.2 running on Mac OS X 10.5.4, but will apply to several other configurations (other versions of [[Safari]] and [[Opera]] too)

''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Installation]] to find some that are right for you.''
!Step 1 - Check downloaded files
After [[Download]], check first that you have automatically received a zip file containing two files (the contents of the zip file may have been extracted automatically - if not, open the zip file):
*empty.html (this is your ~TiddlyWiki file)
*~TiddlySaver.jar (this is a java applet, which will make sure everything works in your chosen browser. Note a copy of this file ''must'' be kept in the same folder as any ~TiddlyWiki file you are using) 
[img[images/step1macsafari.jpg]]
You can download the ~TiddlySaver.jar file on it's own from [[here|http://www.tiddlywiki.com/TiddlySaver.jar]] if you need it.

Double click the empty.html file to get started.
!Step 2 - Open file
The system will check you're happy to open the ~TiddlyWiki file. Click on 'Open'.

[img[images/step2macsafari.jpg]]
!Step 3 - Trust applet
The ~TiddlySaver.jar applet has been signed by [[UnaMesa|http://www.unamesa.org]], who hold the rights to ~TiddlyWiki on behalf of the community. You can find out more about the applet itself [[here|TiddlySaver]], and you'll need to click on 'Trust' in order for the ~TiddlyWiki to work. If you've accidentally clicked on 'Don't Trust' previously, don't worry - just restart the browser and you should get asked again.

[img[images/step3macsafari.jpg]]
!Step 4 - You're done!
Thanks to the applet, you now have the full functionality of ~TiddlyWiki at your disposal. Be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
[[Plugins]] are just tiddlers containing ~JavaScript code that is tagged with <<tag systemConfig>>. TiddlyWiki executes any [[Plugins]] as it loads; they can add [[Macros]] or otherwise extend and enhance the base code.

The recommended way to install a plugin into your own copy of TiddlyWiki is to use ImportTiddlers (there are instructions for ManuallyInstallIngPlugins when required).
InterfaceOptions are displayed when you click the 'options' button on the right in your TiddlyWiki file. They are saved in a cookie on your browser, making them sticky between visits:
<<<
<<tiddler OptionsPanel>>
<<<
* The user name for edits should be set //before// starting to edit things (ouch. another bug)
* SaveBackups gives the option of whether to generate backup files 
* AutoSave gives the option of automatically saving every time a change is made
* RegExpSearch allows more complex search expressions
* CaseSensitiveSearch does as its name implies
TiddlyWiki works on InternetExplorer 6.x and above under Windows. It also allows you to SaveChanges, albeit there are some annoying XP ServicePack2Problems and VistaIssues to work around. If you're having problems, make sure you've followed the appropriate [[installation guidelines|Installation]].

Known problems with ~TiddlyWiki under InternetExplorer:
* [[Gradient|GradientMacro]] fills sometimes appear in the wrong place until you move the mouse over the tiddler
* Horizontal gradients don't work correctly
* Links to tiddlers with multiple consecutive spaces in their titles is broken
* Runs of spaces within tiddlers get conflated into a single space when you edit a tiddler. This is particularly annoying when using MonospacedText blocks
|''URL:''|http://jackparke.googlepages.com/jtw.html|
|''Description:''|Plugins, Macros and Hacks|
|''Author:''|JackParker|
Jeremy is the original creator of TiddlyWiki (nowadays, it's more of a [[group effort|Community]]). I work at [[BT|http://www.btplc.com/]] where I am Head of Open Source Innovation. I run the [[Osmosoft]] team, and generally try to help BT be better at understanding and participating in open source.

I can be reached at {{{jeremy (at) osmosoft (dot) com}}}, and I regularly read and reply to messages on the [[TiddlyWiki Google Groups|Community]]. I (occasionally) blog at http://jermolene.wordpress.com/ and you can also find me on [[Flickr|http://www.flickr.com/photos/jermy/]], [[del.icio.us|http://del.icio.us/jeremyruston]] and [[twitter|http://twitter.com/Jermolene]].
Offers a popup menu to jump directly to any of the currently open tiddlers. It is used with the ToolbarMacro like this:
{{{
<<toolbar jump>>
}}}
Access keys are shortcuts to common functions accessed by typing a letter with either the 'alt' (PC) or 'control' (Mac) key:
|!PC|!Mac|!Function|
|Alt-F|Ctrl-F|Search|
|Alt-J|Ctrl-J|NewJournal|
|Alt-N|Ctrl-N|NewTiddler|
|Alt-S|Ctrl-S|SaveChanges|
These access keys are provided by the associated internal [[Macros]] for the functions above. The macro needs to be used in an open tiddler (or the MainMenu or SideBar) in order for the access keys to work.

While editing a tiddler:
* ~Control-Enter or ~Control-Return accepts your changes and switches out of editing mode (use ~Shift-Control-Enter or ~Shift-Control-Return to stop the date and time being updated for MinorChanges)
* Escape abandons your changes and reverts the tiddler to its previous state

In the search box:
* Escape clears the search term
/***
|''Name:''|LegacyStrikeThroughPlugin|
|''Description:''|Support for  legacy (pre 2.1) strike through formatting|
|''Version:''|1.0.1|
|''Date:''|Jul 21, 2006|
|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|
|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|
|''License:''|[[BSD open source license]]|
|''CoreVersion:''|2.1.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|

***/

//{{{

// Ensure that the LegacyStrikeThrough Plugin is only installed once.
if(!version.extensions.LegacyStrikeThroughPlugin)
	{
	version.extensions.LegacyStrikeThroughPlugin = true;

config.formatters.push(
{
	name: "legacyStrikeByChar",
	match: "==",
	termRegExp: /(==)/mg,
	element: "strike",
	handler: config.formatterHelpers.createElementAndWikify
});

} // end of "install only once"
//}}}
|''URL:''|http://tw.lewcid.org/|
|''Description:''|a repository of my extensions for TW|
|''Author:''|SaqImtiaz|
You've clicked on an example link! Click close to close this tiddler.
The format for PrettyLinks allows for links that open local or network folders. Depending on your browser and operating system, the folders are opened in Windows Explorer, the OS X Finder, or the browser itself.

Edit this tiddler to see [[this link to a Windows network share|file://///server/share/folder/path/name]], [[this link to a Windows drive-mapped folder|file:///c:/folder/path/name]] and [[this link to a Unix-style folder|file:///folder/path/name]].
[[Macros]] let you write tiddlers containing more exotic objects than just text. Built-in macros include:
* NewJournalMacro and NewTiddlerMacro
* GradientMacro
* TabMacro
* TaggingMacro
* TodayMacro
* ToolbarMacro

Tag popup:
{{{
<<tag features>>
}}}
will result in <<tag features>>

Slider:
{{{
<<slider chkTestSlider OptionsPanel options "Change TiddlyWiki advanced options">>
}}}
Results in this button <<slider chkTestSlider OptionsPanel options "Change TiddlyWiki advanced options">>
The parameters are:
* cookie name to be used to save the state of the slider
* name of the tiddler to include in the slider
* title text of the slider
* tooltip text of the slider
[[Начало]]
[[О программе]]
[[Язык Дракон]]
[[Язык Гном]]
[[Помощь по Дракону]]
[[Воросы и Ответы]]
----
[[ДРОН]]
----
[[Справка по GTD]]
[[Справка по TiddlyWiki]]
^^[[ЯП с русским синтаксисом|http://rus.24bb.ru]]^^
----
^^[[Настройка|MainMenu]]^^

[[XML|index.xml]]
//[[Про TiddlyWiki.|http://www.glebsite.ru/all/blog/302/pro-tiddlywiki-s-tsyganochkoi-vykhodom-i-rusifikatsiei]] //
^^(блог)^^
In some situations it can be useful to use the clipboard insead of InstallingPlugins using ImportTiddlers.

# Open a new browser window and navigate to the TiddlyWiki site containing the macro you want
# Double click the tiddler, or click the {{{source}}} button (on other sites it will sometimes be a {{{view}}} or {{{edit}}} button)
# The entire text of the tiddler should be selected; if not select it manually with Control-A or Command-A
# Copy the entire text of the tiddler to the clipboard
# Open your TiddlyWiki file in a new browser window
# Click {{{new tiddler}}} to create a new blank tiddler
## Paste the contents of the clipboard into it's body
## Set the title as appropriate
## Add the tag {{{systemConfig}}}
# Click {{{done}}} on the tiddler
# SaveChanges
# Reload your TiddlyWiki in the browser
The plugin should now be available for use.
|''URL:''|http://www.martinswiki.com/ |
|''Description:''|Martin Buddens's Plugins |
|''Author:''|MartinBudden |
MicroContent being a fashionable word for self-contained fragments of content that are typically smaller than entire pages. Often MicroContent is presented via some kind of aggregation that reduces the perceptual shock and resource cost of context switching (eg Blogs aggregating several entries onto a page or Flickr presenting photos in an album). This TiddlyWiki aggregates MicroContent items that I call 'tiddlers' into pages that are loaded in one gulp and progressively displayed as the user clicks hypertext links to read them.
Sometimes it's useful to stop a minor change to a tiddler from causing it to rise to the top of the timeline. This can be done by pressing the Shift key while clicking the 'done' toolbar button, or with the ~Shift-Control-Enter key. This behaviour can be switched to become the default with one of the AdvancedOptions.
The 'Missing' option on the MoreTab shows you the names of tiddlers that you've referred to but not gone ahead to define. It can be useful during writing sessions to keep track of things you need to come back and fill out.
|''URL:''|http://mptw.tiddlyspot.com/|
|''Description:''|a tiddlywiki distribution and plugins|
|''Author:''|SimonBaird|
{{{Monospaced text}}} is supported - edit this tiddler to see the syntax.

You can also have monospaced blocks (useful for source code):

{{{
var posTop = findPosY(e);
var posBot = posTop + e.offsetHeight;
var winTop = findScrollY();
var winHeight = findWindowHeight();
var winBot = winTop + winHeight;
if(posTop < winTop)
return(posTop);
else if(posBot > winBot)
{
if(e.offsetHeight < winHeight)
return(posTop - (winHeight - e.offsetHeight));
else
return(posTop);
}
else
return(winTop);
}}}
The functions of 'Timeline' and 'All' tabs have been around since the FirstVersion of TiddlyWiki. The purpose of the 'More' tab is to bring together some other, more specialised lists of tiddlers that can be useful during writing sessions. Currently, it offers lists of OrphanTiddlers and MissingTiddlers.
Within a CustomStyleSheet, you can include the text of another tiddler by including it in double square brackets. For example, if the tiddler MyFavouriteColour contains {{{#ff763e}}}, and the StyleSheet tiddler contained:

{{{
#mainMenu {background-color:[[MyFavouriteColour]];}
}}}

Then, the effect is that each CSS declaration will be set to {{{background-color: #ff763e;}}}.

In practice, for small bits of text like a colour, it makes sense to use TiddlerSlicing format to reference a chunk of text within a tiddler. See ColorPalette and StyleSheetColors for an example.

Of course, you can use this mechanism to redirect any part of a stylesheet, not just colours. And you can nest references for more complex effects.
A PageTemplate, ViewTemplate or EditTemplate can include the text of another tiddler by including it in double square brackets. For example:

{{{
<div>
[[MyHeader]]
</div>
}}}

You can also use TiddlerSlicing format to include a smaller chunk of the text of a tiddler.
TiddlyWiki has been improved in several areas for release 2.4. Here are some of the highlights; see the full [[release note at tiddlywiki.org|http://trac.tiddlywiki.org/wiki/History#Revision2.4.0]] for more details.
!!! Usability
There's several significant usability enhancements including:
* Much easier saving in [[Safari]] and [[Opera]] using the newly-signed TiddlySaver Java applet
* Automated TiddlyWiki core code upgrades (see HowToUpgrade) that we can use for future releases
* Friendlier customisation of ToolbarCommands
* Improvements to the ImportTiddlers user interface
* Added warning before closing a dirty tiddler
* Enhanced GradientMacro
* Enhanced tag chooser to allow selection of multiple tags by control-clicking on them
!!! Performance
* Speeded up ~SHA-1 hash function
!!! Hackability
As usual, several of the new features are intended to make life easier for plugin writers and other TiddlyWiki hackers:
* Several enhancements to the {{{<<view>>}}} macro
* Support for nested popups
* Improved SafeMode that now protects the shadow tiddlers
* Added support for temporary tiddlers via the {{{doNotSave()}}} method on the {{{Tiddler}}} object
* Added W3C locale specifier
* Several new CSS classes for easier restyling (eg the "tabsetWrapper" class for tabs)
TiddlyWiki benefits from an extensive set of [[translations|http://trac.tiddlywiki.org/wiki/Translations]]. There are several enhancements in this release to make it easier to maintain translations.
The {{{<<newJournal>>}}} macro creates a new tiddler with it's title set to the current date, and the cursor in the body text area ready to type.

This macro is identical to the NewTiddlerMacro except that the "title" parameter is treated as a DateFormatString so that you can specify your own date format.
The {{{<<newTiddler>>}}} macro displays a button that can be clicked to create a new tiddler. By default, the new tiddler is opened in edit mode or you can specify a custom template.

The available parameters are:

|!Parameter |!Description |
|label |The text of the button |
|prompt |The tooltip for the button |
|accessKey |The access key to trigger the button (specify a single letter; different browsers require a different modifier key like Alt- or Control-) |
|focus |Which of the edittable fields to default the focus to (eg, "title", "text", "tags") |
|template |The template to use to display the new tiddler (defaults to EditTemplate) |
|text |The default text for the new tiddler |
|title |The default title for the new tiddler |
|tag |A single tag to be applied to the new tiddler (repeat this parameter to specify multiple tags) |

For example: <<newTiddler label:"try this" accessKey:1 focus:tags text:"hello there!" tag:greeting tag:"an example">> (can also be triggered with Alt-1)
{{{
<<newTiddler label:"try this" accessKey:1 focus:tags text:"hello there!" tag:greeting tag:"an example">>
}}}

You can only prime the initial values of fields that map to a text input box in the specified template (for instance, if you specify the standard ViewTemplate as the template you won't be able to prime any fields). For example, this doesn't work as you might expect:
{{{
<<newTiddler template:ViewTemplate text:"To be or not to be">>
}}}
<<newTiddler template:ViewTemplate text:"To be or not to be">>
To make a tiddler that doesn't have a WikiWord as its name, you can enclose the name in [[double square brackets]] - edit this tiddler to see an example. After saving the tiddler you can then click on the link to create the new tiddler. NonWikiWordLinks permits tiddlers to be created with names that are made from character sets that don't have upper and lower case.
We've recently had a spate of cases of Norton AntiVirus software incorrectly identifying TiddlyWiki files as carrying the [[W32.Feebs]] virus. If you've been affected, see  [[this discussion|http://groups.google.com/group/TiddlyWiki/browse_frm/thread/f98da9a720d01ba5/87a96ed9899e05c9?hl=en]] about recovering your data.
It's easy to create NumberedBulletPoints.
# Use a single '#' at the start of each line
# and the tiddler will automatically
# start numbering your list.
## If you want a sub-list
## within any bullets
## add two '#'s at the start of the lines.
# When you go back to a single '#'
# the main numbered list will start up
# where it left off.

It's just as simple to do normal BulletPoints.
TiddlyWiki is published under a BSD OpenSourceLicense that gives you the freedom to use it pretty much however you want, including for commercial purposes, as long as you keep my copyright notice. (You can see the full license text by doing a 'view source' in your browser). If you do use TiddlyWiki I'd appreciate a link back to http://www.tiddlywiki.com.
~TiddlyWiki works with all recent versions of Opera, and can save changes using the TiddlySaver Java applet. If you're experiencing problems, make sure you've followed the appropriate [[installation guidelines|Installation]].
The 'Orphans' option on the MoreTab shows you the names of tiddlers that aren't linked to from any other tiddlers - in other words, tiddlers that there is no way for readers to find other than searching for them.
Osmosoft is a small team run by JeremyRuston within [[BT|http://www.btplc.com/]] that focuses on working with the wider community to improve TiddlyWiki and its related ecosystem. See http://www.osmosoft.com/ for more details.
<!--{{{-->
<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>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='macro' force='true' macro='slider chkSideBarTabs SideBarTabs "index »" "display lists of tiddlers"'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
The ParameterParser is used in several places in TiddlyWiki:
* to process the StartupParameters after the '#' in a TiddlyWiki URL
* to process the DefaultTiddlers list
* to process the parameters to [[Macros]]
* to process tag lists when editing a tiddler
It supports a list of parameters each of the form "name:value". For example:
{{{
name:John   location:"Isle of Wight"   [[dietary needs]]:none   really:'yes, really'
}}}
Names and values that need to contain spaces may be quoted with single- or double-quotes or double-square brackets. The parser is generally tolerant of additional spaces.

When processing macro parameters, names and values may also be quoted with double-braces which causes them to be evaluated as a JavaScript expression. For example:
{{{
title:{{window.title}}
}}}

The ParameterParser will cope with either the name or the value being omitted, and will substitute a specified default. This is how the StartupParameters work; the default parameter name is specified as 'open'.
|''URL:''|http://bradleymeck.tiddlyspot.com/|
|''Description:''|Resources that are Ripe for the Picking|
|''Author:''|BradleyMeck|
|Standard Periodic Table (ref. Wikipedia)|c
|| !1 | !2 |!| !3 | !4 | !5 | !6 | !7 | !8 | !9 | !10 | !11 | !12 | !13 | !14 | !15 | !16 | !17 | !18 |
|!1|bgcolor(#a0ffa0): @@color(red):H@@ |>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>||bgcolor(#c0ffff): @@color(red):He@@ |
|!2|bgcolor(#ff6666): Li |bgcolor(#ffdead): Be |>|>|>|>|>|>|>|>|>|>||bgcolor(#cccc99): B |bgcolor(#a0ffa0): C |bgcolor(#a0ffa0): @@color(red):N@@ |bgcolor(#a0ffa0): @@color(red):O@@ |bgcolor(#ffff99): @@color(red):F@@ |bgcolor(#c0ffff): @@color(red):Ne@@ |
|!3|bgcolor(#ff6666): Na |bgcolor(#ffdead): Mg |>|>|>|>|>|>|>|>|>|>||bgcolor(#cccccc): Al |bgcolor(#cccc99): Si |bgcolor(#a0ffa0): P |bgcolor(#a0ffa0): S |bgcolor(#ffff99): @@color(red):Cl@@ |bgcolor(#c0ffff): @@color(red):Ar@@ |
|!4|bgcolor(#ff6666): K |bgcolor(#ffdead): Ca ||bgcolor(#ffc0c0): Sc |bgcolor(#ffc0c0): Ti |bgcolor(#ffc0c0): V |bgcolor(#ffc0c0): Cr |bgcolor(#ffc0c0): Mn |bgcolor(#ffc0c0): Fe |bgcolor(#ffc0c0): Co |bgcolor(#ffc0c0): Ni |bgcolor(#ffc0c0): Cu |bgcolor(#ffc0c0): Zn |bgcolor(#cccccc): Ga |bgcolor(#cccc99): Ge |bgcolor(#cccc99): As |bgcolor(#a0ffa0): Se |bgcolor(#ffff99): @@color(green):Br@@ |bgcolor(#c0ffff): @@color(red):Kr@@ |
|!5|bgcolor(#ff6666): Rb |bgcolor(#ffdead): Sr ||bgcolor(#ffc0c0): Y |bgcolor(#ffc0c0): Zr |bgcolor(#ffc0c0): Nb |bgcolor(#ffc0c0): Mo |bgcolor(#ffc0c0): Tc |bgcolor(#ffc0c0): Ru |bgcolor(#ffc0c0): Rh |bgcolor(#ffc0c0): Pd |bgcolor(#ffc0c0): Ag |bgcolor(#ffc0c0): Cd |bgcolor(#cccccc): In |bgcolor(#cccccc): Sn |bgcolor(#cccc99): Sb |bgcolor(#cccc99): Te |bgcolor(#ffff99): I |bgcolor(#c0ffff): @@color(red):Xe@@ |
|!6|bgcolor(#ff6666): Cs |bgcolor(#ffdead): Ba |bgcolor(#ffbfff):^^*1^^|bgcolor(#ffc0c0): Lu |bgcolor(#ffc0c0): Hf |bgcolor(#ffc0c0): Ta |bgcolor(#ffc0c0): W |bgcolor(#ffc0c0): Re |bgcolor(#ffc0c0): Os |bgcolor(#ffc0c0): Ir |bgcolor(#ffc0c0): Pt |bgcolor(#ffc0c0): Au |bgcolor(#ffc0c0): @@color(green):Hg@@ |bgcolor(#cccccc): Tl |bgcolor(#cccccc): Pb |bgcolor(#cccccc): Bi |bgcolor(#cccc99): Po |bgcolor(#ffff99): At |bgcolor(#c0ffff): @@color(red):Rn@@ |
|!7|bgcolor(#ff6666): Fr |bgcolor(#ffdead): Ra |bgcolor(#ff99cc):^^*2^^|bgcolor(#ffc0c0): Lr |bgcolor(#ffc0c0): Rf |bgcolor(#ffc0c0): Db |bgcolor(#ffc0c0): Sq |bgcolor(#ffc0c0): Bh |bgcolor(#ffc0c0): Hs |bgcolor(#ffc0c0): Mt |bgcolor(#ffc0c0): Ds |bgcolor(#ffc0c0): Rg |bgcolor(#ffc0c0): @@color(green):Uub@@ |bgcolor(#cccccc): Uut |bgcolor(#cccccc): Uuq |bgcolor(#cccccc): Uup |bgcolor(#cccccc): Uuh |bgcolor(#fcfecc): @@color(#cccccc):Uus@@ |bgcolor(#ecfefc): @@color(#cccccc):Uuo@@ |

| !Lanthanides^^*1^^|bgcolor(#ffbfff): La |bgcolor(#ffbfff): Ce |bgcolor(#ffbfff): Pr |bgcolor(#ffbfff): Nd |bgcolor(#ffbfff): Pm |bgcolor(#ffbfff): Sm |bgcolor(#ffbfff): Eu |bgcolor(#ffbfff): Gd |bgcolor(#ffbfff): Tb |bgcolor(#ffbfff): Dy |bgcolor(#ffbfff): Ho |bgcolor(#ffbfff): Er |bgcolor(#ffbfff): Tm |bgcolor(#ffbfff): Yb |
| !Actinides^^*2^^|bgcolor(#ff99cc): Ac |bgcolor(#ff99cc): Th |bgcolor(#ff99cc): Pa |bgcolor(#ff99cc): U |bgcolor(#ff99cc): Np |bgcolor(#ff99cc): Pu |bgcolor(#ff99cc): Am |bgcolor(#ff99cc): Cm |bgcolor(#ff99cc): Bk |bgcolor(#ff99cc): Cf |bgcolor(#ff99cc): Es |bgcolor(#ff99cc): Fm |bgcolor(#ff99cc): Md |bgcolor(#ff99cc): No |

*Chemical Series of the Periodic Table
**@@bgcolor(#ff6666): Alkali metals@@
**@@bgcolor(#ffdead): Alkaline earth metals@@
**@@bgcolor(#ffbfff): Lanthanides@@
**@@bgcolor(#ff99cc): Actinides@@
**@@bgcolor(#ffc0c0): Transition metals@@
**@@bgcolor(#cccccc): Poor metals@@
**@@bgcolor(#cccc99): Metalloids@@
**@@bgcolor(#a0ffa0): Nonmetals@@
**@@bgcolor(#ffff99): Halogens@@
**@@bgcolor(#c0ffff): Noble gases@@

*State at standard temperature and pressure
**those in @@color(red):red@@ are gases
**those in @@color(green):green@@ are liquids
**those in black are solids
I think this feature from the SecondVersion of TiddlyWiki is quite original. It's a button in the right-hand sidebar that sets the browser address bar to a URL embodying all the currently open tiddlers in the order that they are currently shown. To use it, arrange the open tiddlers that you want, click the permaview button, copy the URL from the browser address bar, and then paste it into an email, web page or whatever.

On some browsers, PermaView can be unreliable if any of the tiddler titles include characters that have special meanings in URLs (like "+" and "\") or are outside the basic ANSI character set.
Changes the browser address bar to a permalink to the current tiddler. It is used with the ToolbarMacro like this:
{{{
<<toolbar permalink>>
}}}

On some browsers, the PermalinkCommand can be unreliable if the tiddler title includes characters that have special meanings in URLs (like "+" and "\") or are outside the basic ANSI character set.
Sometimes text can inadvertently match TiddlyWiki formatting instructions - particularly program code, or text pasted from elsewhere. In these situations you can either use MonospacedText or you can accomplish the same thing without the monospaced effect like this:
{{{
This is AnotherLink, this is a copyright symbol &copy; and this site is called <<tiddler SiteTitle>>
<nowiki>This is AnotherLink, this is a copyright symbol &copy; and this site is called <<tiddler SiteTitle>></nowiki>
"""This is AnotherLink, this is a copyright symbol &copy; and this site is called <<tiddler SiteTitle>>"""
}}}
Which displays as:
This is AnotherLink, this is a copyright symbol &copy; and this site is called <<tiddler SiteTitle>>
<nowiki>This is AnotherLink, this is a copyright symbol &copy; and this site is called <<tiddler SiteTitle>></nowiki>
"""This is AnotherLink, this is a copyright symbol &copy; and this site is called <<tiddler SiteTitle>>"""
The [[Community]] is experimenting with using the [[del.icio.us|http://del.icio.us/]] bookmarking service as a PluginDirectory. The idea is to use the tag "TiddlyWikiPlugin" to identify the URL of a TiddlyWiki plugin. The del.icio.us fields should be set as follows:

|!Field |!Example |
|url |http://authorsite.com/#ThePlugin |
|title |ThePluginTitle |
|notes |Brief description/review of plugin |
|tags |TiddlyWikiPlugin <AuthorName> |

The beauty of this approach is that it aggregates together multiple comments about a single plugin. For example, this is the del.icio.us [[page about UdoBorkowski's YourSearch plugin|http://del.icio.us/url/8085cbf3bbeda20f39a04a2969616afd]]. You can also browse the tag directly to see recently added plugins: http://del.icio.us/tag/TiddlyWikiPlugin

BidiX has also created a special del.icio.us account (http://del.icio.us/TiddlyWikiPlugin) that he's using to compile a master list of plugins tagged with TiddlyWikiHackers.
It is recommended that [[Plugins]]  start with some standard information in TiddlerSlicing format. For example, see the ExamplePlugin:
{{{
|''Name:''|ExamplePlugin|
|''Description:''|To demonstrate how to write TiddlyWiki plugins|
|''Version:''|2.0.2|
|''Date:''|Jul 12, 2006|
|''Source:''|http://www.tiddlywiki.com/#ExamplePlugin|
|''Author:''|JeremyRuston (jeremy (at) osmosoft (dot) com)|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
}}}
At the moment, only ~CoreVersion affects how [[Plugins]] are processed: if the ~CoreVersion is specified for a plugin, TiddlyWiki will only execute the plugin if the core code version matches or exceeds the version specified. For example, if you specify a ~CoreVersion of 2.2, version 2.1.x of TiddlyWiki will refuse to execute the plugin.

To indicate an error, plugins should just {{{throw}}} an exception. The text of the exception will be displayed in the PluginManager.
To make plugins, stylesheets and templates easier to read, you can use special alternative formatting for monospaced blocks.

In JavaScript code:
{{{
//{{{
var id = document.getElementById("mainMenu");
//}}}
}}}
In HTML templates:
{{{
<!--{{{-->
<div id="MainMenu">
</div>
<!--}}}-->
}}}
In CSS stylesheets
{{{
/*{{{*/
div {color: #ff0000;}
/*}}}*/
}}}
It will be displayed as:
//{{{
var id = document.getElementById("mainMenu");
//}}}

<!--{{{-->
<div id="MainMenu">
</div>
<!--}}}-->

/*{{{*/
div {color: #ff0000;}
/*}}}*/
~TiddlyWiki can be extended by installing plugins that implement a wide variety of features (including new [[Macros]], themes or tweaks). Plugins are simply tidders (written in javascript) which contain the additional functionality. So, to install a plugin, you need to import the relevant tiddler(s) into your ~TiddlyWiki file.

Community member Dave Gifford oversees an extensive catalogue of available plugins at [[TiddlyVault|http://tiddlyvault.tiddlyspot.com/]], and Eric Shulman maintains his own impressive collection of plugins at [[TiddlyTools|http://www.tiddlytools.com]].

When you've chosen the plugin you'd like to import, follow the directions in ImportTiddlers. 

As with saving changes, this will only work when ~TiddlyWiki is opened on your local computer (as opposed to being viewed over the internet).

Finally, community member Chris Klimas has written some superb documentation on writing plugins and macros for ~TiddlyWiki, which can now be found on the [[Writing Macros|http://tiddlywiki.org/wiki/Dev:Macros]] and [[Core Code|http://tiddlywiki.org/wiki/Dev:Core_Code_Overview]] sections of the Community wiki.
You can now link to [[external sites|http://www.osmosoft.com]] or [[ordinary tiddlers|TiddlyWiki]] with ordinary words, without the messiness of the full URL appearing. Edit this tiddler to see how.

You can also LinkToFolders.
|''URL:''|http://ptw.sourceforge.net/ptwe.html|
|''Description:''|BramChen's Extensions for TiddlyWiki|
|''Author:''|BramChen|
"~TiddlyWiki offers a glimpse of how things are changing in terms of how people think about software... a new beginning for simple software." -- //Jeremy Wagstaff, [[WSJ.com|http://groups.google.com/group/TiddlyWiki/browse_thread/thread/53c7b7686b9bb5c2/122f1b2146d2ba6d?q=wsj&rnum=1]]//

"The original ~TiddlyWiki by Jeremy Ruston is, without a doubt, one of the most amazing dynamic web apps I've ever seen (sorry Gmail.)" -- [[Lifehacker.com recommendation|http://www.lifehacker.com/software/productivity/getting-things-done-tiddlywiki-102953.php]]

"It's blowing my mind." -- //Evan Williams, founder of Blogger, Twitter and Odeo, [[EvHead|http://evhead.com/2005/05/tiddlywiki-reusable-non-linear.asp]]//

"What I love most about ~TiddlyWiki is that it is quite easy to use but incredibly flexible." -- //Ed Sim of Dawntreader Ventures, [[BeyondVC|http://www.beyondvc.com/2005/10/tiddlywiki.html]]//

"~TiddlyWiki is completely blowing my mind... Completely tripped out. Try it and you'll see what I mean." -- //Russell Beattie of Yahoo!, [[Russell Beattie's Notebook|http://www.russellbeattie.com/notebook/1008896.html]]//

"OK, this is the first wiki interface I’ve seen that has real potential. Dunno quite why exactly, but this blows my mind." -- //Jason Kottke, [[Kottke's Remaindered Links|http://www.kottke.org/remainder/04/09/6574.html]]//
|''URL:''|http://solo.dc3.com/tw/|
|''Description:''|Bob Denny's extensions to TiddlyWiki|
|''Author:''|BobDenny|
Since the FirstVersion of TiddlyWiki, the ReferencesButton has been implemented as a canned search for the name of the current tiddler. That approach was a bit disruptive because of the way that a search operation wipes the current reading state of the document.

The new implementation offers a popup menu of the names of all the referring tiddlers. It can be consulted without disturbing any tiddlers that are currently open.
Offers a popup menu displaying the tiddlers that link to the current one. It is used with the ToolbarMacro like this:
{{{
<<toolbar references>>
}}}
RegExpSearch uses JavaScript's [[RegExp syntax|http://www.programmershelp.co.uk/docs/javascript/regexp.html#1193188]] to allow flexible searches.
/***
|''Name:''|ReminderPlugin|
|''Version:''|2.3.8 (Mar 9, 2006)|
|''Source:''|http://www.geocities.com/allredfaq/reminderMacros.html|
|''Author:''|Jeremy Sheeley(pop1280 [at] excite [dot] com)|
|''Licence:''|[[BSD open source license]]|
|''Macros:''|reminder, showreminders, displayTiddlersWithReminders, newReminder|
|''TiddlyWiki:''|2.0+|
|''Browser:''|Firefox 1.0.4+; InternetExplorer 6.0|
|''Hacked by:'' | //Cleb. Support for Russian dates added// |
|''Hack version:'' | //0.8b// |
|''Hack source:'' | http://glebsite.ru/tw |

!Description
This plugin provides macros for tagging a date with a reminder.  Use the {{{reminder}}} macro to do this.  The {{{showReminders}}} and {{{displayTiddlersWithReminder}}} macros automatically search through all available tiddlers looking for upcoming reminders.

!Installation
* Create a new tiddler in your tiddlywiki titled ReminderPlugin and give it the {{{systemConfig}}} tag.  The tag is important because it tells TW that this is executable code.
* Double click this tiddler, and copy all the text from the tiddler's body.
* Paste the text into the body of the new tiddler in your TW.
* Save and reload your TW.
* You can copy some examples into your TW as well.  See [[Simple examples]], [[Holidays]], [[showReminders]] and [[Personal Reminders]]

!Syntax:
|>|See [[ReminderSyntax]] and [[showRemindersSyntax]]|

!Revision history
* v2.3.8 (Mar 9, 2006)
**Bug fix: A global variable had snuck in, which was killing FF 1.5.0.1
**Feature: You can now use TIDDLER and TIDDLERNAME in a regular reminder format
* v2.3.6 (Mar 1, 2006)
**Bug fix: Reminders for today weren't being matched sometimes.
**Feature:  Solidified integration with DatePlugin and CalendarPlugin
**Feature:  Recurring reminders will now return multiple hits in showReminders and the calendar.
**Feature:  Added TIDDLERNAME to the replacements for showReminders format, for plugins that need the title without brackets.
* v2.3.5 (Feb 8, 2006)
**Bug fix: Sped up reminders lots.  Added a caching mechanism for reminders that have already been matched.
* v2.3.4 (Feb 7, 2006)
**Bug fix: Cleaned up code to hopefully prevent the Firefox 1.5.0.1 crash that was causing lots of plugins 
to crash Firefox.  Thanks to http://www.jslint.com
* v2.3.3 (Feb 2, 2006)
**Feature: newReminder now has drop down lists instead of text boxes.
**Bug fix:  A trailing space in a title would trigger an infinite loop.
**Bug fix:  using tag:"birthday !reminder" would filter differently than tag:"!reminder birthday"
* v2.3.2 (Jan 21, 2006)
**Feature: newReminder macro, which will let you easily add a reminder to a tiddler. Thanks to Eric Shulman (http://www.elsdesign.com) for the code to do this.
** Bug fix: offsetday was not working sometimes
** Bug fix: when upgrading to 2.0, I included a bit to exclude tiddlers tagged with excludeSearch.  I've reverted back to searching through all tiddlers
* v2.3.1 (Jan 7, 2006)
**Feature: 2.0 compatibility
**Feature AlanH sent some code to make sure that showReminders prints a message if no reminders are found.
* v2.3.0 (Jan 3, 2006)
** Bug Fix:  Using "Last Sunday (-0)" as a offsetdayofweek wasn't working.
** Bug Fix:  Daylight Savings time broke offset based reminders (for example year:2005 month:8 day:23 recurdays:7 would match Monday instead of Tuesday during DST.

!Code
***/
//{{{

//============================================================================
//============================================================================
//           ReminderPlugin
//============================================================================
//============================================================================

version.extensions.ReminderPlugin = {major: 2, minor: 3, revision: 8, date: new Date(2006,3,9), source: "http://www.geocities.com/allredfaq/reminderMacros.html"};

//============================================================================
// Configuration
// Modify this section to change the defaults for 
// leadtime and display strings
//============================================================================

config.macros.reminders = {};
config.macros["reminder"] = {};
config.macros["newReminder"] = {};
config.macros["showReminders"] = {};
config.macros["displayTiddlersWithReminders"] = {};

config.macros.reminders["defaultLeadTime"] = [0,6000];
config.macros.reminders["defaultReminderMessage"] = "DIFF: TITLE: DATE ANNIVERSARY";
config.macros.reminders["defaultShowReminderMessage"] = "DIFF: TITLE: DATE ANNIVERSARY -- TIDDLER";
config.macros.reminders["defaultAnniversaryMessage"] = "(DIFF-летие)";
config.macros.reminders["untitledReminder"] = "Что-то";
config.macros.reminders["noReminderFound"] = "В ближайшие дни (LEADTIMEUPPER) TITLE отсутствует в планах."
config.macros.reminders["todayString"] = "''Сегодня''";
config.macros.reminders["tomorrowString"] = "''Завтра''";
config.macros.reminders["ndaysString"] = "Через DIFF дней";
config.macros.reminders["emtpyShowRemindersString"] = "Ничего не запланировано!";


//============================================================================
//  Code
// You should not need to edit anything 
// below this.  Make sure to edit this tiddler and copy 
// the code from the text box, to make sure that 
// tiddler rendering doesn't interfere with the copy 
// and paste.
//============================================================================

// This line is to preserve 1.2 compatibility
 if (!story) var story=window; 
//this object will hold the cache of reminders, so that we don't
//recompute the same reminder over again.
var reminderCache = {};

config.macros.showReminders.handler = function showReminders(place,macroName,params)
{
   var now = new Date().getMidnight();
   var paramHash = {};
   var leadtime = [0,14];
   paramHash = getParamsForReminder(params);
   var bProvidedDate = (paramHash["year"] != null) || 
			(paramHash["month"] != null) || 
			(paramHash["day"] != null) || 
			(paramHash["dayofweek"] != null);
   if (paramHash["leadtime"] != null)
   {
      leadtime = paramHash["leadtime"];
      if (bProvidedDate)
      {
         //If they've entered a day, we need to make 
         //sure to find it.  We'll reset the 
         //leadtime a few lines down.
         paramHash["leadtime"] = [-10000, 10000];
      }
   }
   var matchedDate = now;
   if (bProvidedDate)
   {
      var leadTimeLowerBound = new Date().getMidnight().addDays(paramHash["leadtime"][0]);
      var leadTimeUpperBound = new Date().getMidnight().addDays(paramHash["leadtime"][1]);
      matchedDate = findDateForReminder(paramHash, new Date().getMidnight(), leadTimeLowerBound, leadTimeUpperBound); 
   }

   var arr = findTiddlersWithReminders(matchedDate, leadtime, paramHash["tag"], paramHash["limit"]);
   var elem = createTiddlyElement(place,"span",null,null, null);
   var mess = "";
   if (arr.length == 0)
   {
      mess += config.macros.reminders.emtpyShowRemindersString; 
   }
   for (var j = 0; j < arr.length; j++)
   {
      if (paramHash["format"] != null)
      {
         arr[j]["params"]["format"] = paramHash["format"];
      }
      else
      {
         arr[j]["params"]["format"] = config.macros.reminders["defaultShowReminderMessage"];
      }
      mess += getReminderMessageForDisplay(arr[j]["diff"], arr[j]["params"], arr[j]["matchedDate"], arr[j]["tiddler"]);
      mess += "\n";
   }
   wikify(mess, elem, null, null);
};


config.macros.displayTiddlersWithReminders.handler = function displayTiddlersWithReminders(place,macroName,params)
{
   var now = new Date().getMidnight();
   var paramHash = {};
   var leadtime = [0,14];
   paramHash = getParamsForReminder(params);
   var bProvidedDate = (paramHash["year"] != null) || 
			(paramHash["month"] != null) || 
			(paramHash["day"] != null) || 
			(paramHash["dayofweek"] != null);
   if (paramHash["leadtime"] != null)
   {
      leadtime = paramHash["leadtime"];
      if (bProvidedDate)
      {
         //If they've entered a day, we need to make 
         //sure to find it.  We'll reset the leadtime 
         //a few lines down.
         paramHash["leadtime"] = [-10000,10000];
      }
   }
   var matchedDate = now;
   if (bProvidedDate)
   {
      var leadTimeLowerBound = new Date().getMidnight().addDays(paramHash["leadtime"][0]);
      var leadTimeUpperBound = new Date().getMidnight().addDays(paramHash["leadtime"][1]);
      matchedDate = findDateForReminder(paramHash, new Date().getMidnight(), leadTimeLowerBound, leadTimeUpperBound); 
   }
   var arr = findTiddlersWithReminders(matchedDate, leadtime, paramHash["tag"], paramHash["limit"]);
   for (var j = 0; j < arr.length; j++)
   {
      displayTiddler(null, arr[j]["tiddler"], 0, null, false, false, false);
   }
};

config.macros.reminder.handler = function reminder(place,macroName,params)
{
   var dateHash = getParamsForReminder(params);
   if (dateHash["hidden"] != null)
   {
      return;
   }
   var leadTime = dateHash["leadtime"];
   if (leadTime == null)
   {
      leadTime = config.macros.reminders["defaultLeadTime"]; 
   }
   var leadTimeLowerBound = new Date().getMidnight().addDays(leadTime[0]);
   var leadTimeUpperBound = new Date().getMidnight().addDays(leadTime[1]);
   var matchedDate = findDateForReminder(dateHash, new Date().getMidnight(), leadTimeLowerBound, leadTimeUpperBound);
   if (!window.story) 
   {
      window.story=window; 
   }
   if (!store.getTiddler) 
   {
      store.getTiddler=function(title) {return this.tiddlers[title];};
   }
   var title = window.story.findContainingTiddler(place).id.substr(7);
   if (matchedDate != null)
   {
      var diff = matchedDate.getDifferenceInDays(new Date().getMidnight());
      var elem = createTiddlyElement(place,"span",null,null, null);
      var mess = getReminderMessageForDisplay(diff, dateHash, matchedDate, title);
      wikify(mess, elem, null, null);
   }
   else
   {
      createTiddlyElement(place,"span",null,null, config.macros.reminders["noReminderFound"].replace("TITLE", dateHash["title"]).replace("LEADTIMEUPPER", leadTime[1]).replace("LEADTIMELOWER", leadTime[0]).replace("TIDDLERNAME", title).replace("TIDDLER", "[[" + title + "]]") );
   }
};

config.macros.newReminder.handler = function newReminder(place,macroName,params)
{
  var today=new Date().getMidnight();
  var formstring = '<html><form>год: <select name="year"><option value="">Каждый год</option>';
  for (var i = 0; i < 5; i++)
  {
    formstring += '<option' + ((i == 0) ? ' selected' : '') + ' value="' + (today.getFullYear() +i) + '">' + (today.getFullYear() + i) + '</option>';
  }
formstring += '</select>&nbsp;&nbsp;день:<select name="day"><option value="">Каждый день</option>';
  for (i = 1; i < 32; i++)
  {
    formstring += '<option' + ((i == (today.getDate() )) ? ' selected' : '') + ' value="' + i + '">' + i + '</option>';
  }


  formstring += '</select>&nbsp;&nbsp;месяца:<select name="month"><option value="">Каждый месяц</option>';
  for (i = 0; i < 12; i++)
  {
    formstring += '<option' + ((i == today.getMonth()) ? ' selected' : '') + ' value="' + (i+1) + '">' + config.messages.dates.months[i] + '</option>';
  }
  
formstring += '</select>&nbsp;&nbsp;<br />название:<input type="text" size="40" name="title" value="Введите название. Можно форматировать." onfocus="this.select();"><input type="button" value="Добавить" onclick="addReminderToTiddler(this.form)"></form></html>';

  var panel = config.macros.slider.createSlider(place,null,"Добавить новое напоминание","Откройте, чтобы добавить напоминание в эту запись");
  wikify(formstring ,panel,null,store.getTiddler(params[1]));
};

// onclick: process input and insert reminder at 'marker'
window.addReminderToTiddler = function(form) {
   if (!window.story) 
   {
      window.story=window; 
   }
   if (!store.getTiddler) 
   {
      store.getTiddler=function(title) {return this.tiddlers[title];};
   }
   var title = window.story.findContainingTiddler(form).id.substr(7);
   var tiddler=store.getTiddler(title);
  var txt='\n<<reminder ';
  if (form.year.value != "")
    txt += 'year:'+form.year.value + ' ';
  if (form.month.value != "")
    txt += 'month:'+form.month.value + ' ';
  if (form.day.value != "")
    txt += 'day:'+form.day.value + ' ';
  txt += 'title:"'+form.title.value+'" ';
  txt +='>>';
   tiddler.set(null,tiddler.text + txt);
   window.story.refreshTiddler(title,1,true);
   store.setDirty(true);
};

function hasTag(tiddlerTags, tagFilters)
{
  //Make sure we respond well to empty tiddlerTaglists or tagFilterlists
  if (tagFilters.length==0 || tiddlerTags.length==0)
  {
    return true;
  }

  var bHasTag = false;
  
  /*bNoPos says: "'till now there has been no check using a positive filter"
     Imagine a filterlist consisting of 1 negative filter:
         If the filter isn't matched, we want hasTag to be true.
         Yet bHasTag is still false ('cause only positive filters cause bHasTag to change)
         
     If no positive filters are present bNoPos is true, and no negative filters are matched so we have not returned false
         Thus: hasTag returns true.
      
      If at any time a positive filter is encountered, we want at least one of the tags to match it, so we turn bNoPos to false, which
      means bHasTag must be true for hasTag to return true*/
  var bNoPos=true;
  
for (var t3 = 0; t3 < tagFilters.length; t3++)
  {
      for(var t2=0; t2<tiddlerTags.length; t2++)
      {
           if (tagFilters[t3].length > 1 && tagFilters[t3].charAt(0) == '!') 
           {
              if (tiddlerTags[t2] == tagFilters[t3].substring(1))
              {
                 //If at any time a negative filter is matched, we return false
                  return false;
              }
           }
           else 
           {
              if (bNoPos)
              {
                 //We encountered the first positive filter
                 bNoPos=false;
              }
              if (tiddlerTags[t2] == tagFilters[t3])
              {
                  //A positive filter is matched. As long as no negative filter is matched, hasTag will return true
                  bHasTag=true;
              }
           }
        }
    }
    return (bNoPos || bHasTag);
};

//This function searches all tiddlers for the reminder  //macro.  It is intended that other plugins (like //calendar) will use this function to query for 
//upcoming reminders.
//The arguments to this function filter out reminders //based on when they will fire.
//
//ARGUMENTS:
//baseDate is the date that is used as "now".  
//leadtime is a two element int array, with leadtime[0] 
//         as the lower bound and leadtime[1] as the
//         upper bound.  A reasonable default is [0,14]
//tags is a space-separated list of tags to use to filter 
//         tiddlers.  If a tag name begins with an !, then 
//         only tiddlers which do not have that tag will 
//         be considered.  For example "examples holidays"  
//         will search for reminders in any tiddlers that  
//         are tagged with examples or holidays and 
//         "!examples !holidays" will search for reminders 
//         in any tiddlers that are not tagged with 
//         examples or holidays.  Pass in null to search 
//         all tiddlers.
//limit.  If limit is null, individual reminders can 
//        override the leadtime specified earlier.  
//        Pass in 1 in order to override that behavior.

window.findTiddlersWithReminders = function findTiddlersWithReminders(baseDate, leadtime, tags, limit)
{
//function(searchRegExp,sortField,excludeTag)
//   var macroPattern = "<<([^>\\]+)(?:\\*)([^>]*)>>";
   var macroPattern = "<<(reminder)(.*)>>";
   var macroRegExp = new RegExp(macroPattern,"mg");
   var matches = store.search(macroRegExp,"title","");
   var arr = [];
   var tagsArray = null;
   if (tags != null)
   {
      tagsArray = tags.split(" ");
   }
   for(var t=matches.length-1; t>=0; t--)
   {
      if (tagsArray != null)
      {
         //If they specified tags to filter on, and this tiddler doesn't 
	 //match, skip it entirely.
         if ( ! hasTag(matches[t].tags, tagsArray))
         {
            continue;
         }
      }

      var targetText = matches[t].text;
      do {
         // Get the next formatting match
         var formatMatch = macroRegExp.exec(targetText);
         if(formatMatch && formatMatch[1] != null && formatMatch[1].toLowerCase() == "reminder")
         {
            //Find the matching date.
            
            var params = formatMatch[2] != null ? formatMatch[2].readMacroParams() : {};
            var dateHash = getParamsForReminder(params);
            if (limit != null || dateHash["leadtime"] == null)
            {
               if (leadtime == null)
                   dateHash["leadtime"] = leadtime;
               else
               {
                  dateHash["leadtime"] = [];
                  dateHash["leadtime"][0] = leadtime[0];
                  dateHash["leadtime"][1] = leadtime[1];
               }
            }
	    if (dateHash["leadtime"] == null)
               dateHash["leadtime"] = config.macros.reminders["defaultLeadTime"]; 
            var leadTimeLowerBound = baseDate.addDays(dateHash["leadtime"][0]);
            var leadTimeUpperBound = baseDate.addDays(dateHash["leadtime"][1]);
            var matchedDate = findDateForReminder(dateHash, baseDate, leadTimeLowerBound, leadTimeUpperBound);
            while (matchedDate != null)
            {
               var hash = {};
               hash["diff"] = matchedDate.getDifferenceInDays(baseDate);
               hash["matchedDate"] = new Date(matchedDate.getFullYear(), matchedDate.getMonth(), matchedDate.getDate(), 0, 0);
               hash["params"] = cloneParams(dateHash);
               hash["tiddler"] = matches[t].title;
               hash["tags"] = matches[t].tags;
               arr.pushUnique(hash);
	       if (dateHash["recurdays"] != null || (dateHash["year"] == null))
	       {
	         leadTimeLowerBound = leadTimeLowerBound.addDays(matchedDate.getDifferenceInDays(leadTimeLowerBound)+ 1);
                 matchedDate = findDateForReminder(dateHash, baseDate, leadTimeLowerBound, leadTimeUpperBound);
	       }
	       else matchedDate = null;
            }
         }
      }while(formatMatch);
   }
   if(arr.length > 1)  //Sort the array by number of days remaining.
   {
      arr.sort(function (a,b) {if(a["diff"] == b["diff"]) {return(0);} else {return (a["diff"] < b["diff"]) ? -1 : +1; } });
   }
   return arr;
};

//This function takes the reminder macro parameters and
//generates the string that is used for display.
//This function is not intended to be called by 
//other plugins.
 window.getReminderMessageForDisplay= function getReminderMessageForDisplay(diff, params, matchedDate, tiddlerTitle)
{
   var anniversaryString = "";
   var reminderTitle = params["title"];
   if (reminderTitle == null)
   {
      reminderTitle = config.macros.reminders["untitledReminder"];
   }
   if (params["firstyear"] != null)
   {
      anniversaryString = config.macros.reminders["defaultAnniversaryMessage"].replace("DIFF", (matchedDate.getFullYear() - params["firstyear"]));
   }
   var mess = "";
   var diffString = "";
   if (diff == 0)
   {
      diffString = config.macros.reminders["todayString"];
   }
   else if (diff == 1)
   {
      diffString = config.macros.reminders["tomorrowString"];
   }
   else if (diff == 2)
   {
      diffString = "''Послезавтра''";
   }
   else if (diff == -1)
   {
      diffString = "//Вчера//";
   }
   else if (diff == -2)
   {
      diffString = "//Позавчера//";
   }
   else
   {
      diff-=1; //HACK(ru)
      diffString = config.macros.reminders["ndaysString"].replace("DIFF", diff);
   }
   var format = config.macros.reminders["defaultReminderMessage"];
   if (params["format"] != null)
   {
      format = params["format"];
   }
   mess = format;
//HACK!  -- Avoid replacing DD in TIDDLER with the date
   mess = mess.replace(/TIDDLER/g, "TIDELER");
   mess = matchedDate.formatStringDateOnly(mess);
   mess = mess.replace(/TIDELER/g, "TIDDLER");
   if (tiddlerTitle != null)
   {
      mess = mess.replace(/TIDDLERNAME/g, tiddlerTitle);
      mess = mess.replace(/TIDDLER/g, "[[" + tiddlerTitle + "]]");
   }
   
   mess = mess.replace("DIFF", diffString).replace("TITLE", reminderTitle).replace("DATE", matchedDate.formatString("DDD, [[DD MMM]], YYYY")).replace("ANNIVERSARY", anniversaryString);
//RUSSIAN LANGUAGE HACK
   var daysS = diff.toString();
   var lastD = daysS.charAt(daysS.length-1);
   var lastDs = daysS.substring(daysS.length-2 );

   
   var rD = "дней";
   var rD1 = "1";
   var rD234 = "2-3-4";
   var rD5_9 = "5-6-7-8-9";

   daysS = daysS.substring(daysS.length-2);

if( (lastDs.indexOf("14") == -1)&&(lastDs.indexOf("13") == -1)&&(lastDs.indexOf("12") == -1)&&(lastDs.indexOf("11") == -1) ){
      if (rD1.indexOf(lastD)!=-1){
         rD = "день";  
      }
      if (rD234.indexOf(lastD)!=-1){
         rD = "дня";  
     }
  } 

if(diff<0){
mess = mess.replace(/Через -/, ""  );
mess = mess.replace(/ дней/, " дней назад"  );
}
   mess = mess.replace(/ дней/, " "+rD  );
//HACK ENDS
   return mess;
};



// Parse out the macro parameters into a hashtable.  This
// handles the arguments for reminder, showReminders and 
// displayTiddlersWithReminders.
window.getParamsForReminder = function getParamsForReminder(params)
{
   var dateHash = {};
   var type = "";
   var num = 0;
   var title = "";
   for(var t=0; t<params.length; t++)
   {
      var split = params[t].split(":");
      type = split[0].toLowerCase();
      var value = split[1];
      for (var i=2; i < split.length; i++)
      {
         value += ":" + split[i];
      }
      if (type == "nolinks" || type == "limit" || type == "hidden")
      {
         num = 1;
      }
      else if (type == "leadtime")
      {
         var leads = value.split("...");
         if (leads.length == 1)
         {
            leads[1]= leads[0];
            leads[0] = 0;
         }
         leads[0] = parseInt(leads[0], 10);
         leads[1] = parseInt(leads[1], 10);
         num = leads;
      }
      else if (type == "offsetdayofweek")
      {
          if (value.substr(0,1) == "-")
          {
             dateHash["negativeOffsetDayOfWeek"] = 1;
	     value = value.substr(1);
          }
          num = parseInt(value, 10);
      }
      else if (type != "title" && type != "tag" && type != "format")
      {
         num = parseInt(value, 10);
      }
      else
      {
         title = value;
         t++;
         while (title.substr(0,1) == '"' && title.substr(title.length - 1,1) != '"' && params[t] != undefined)
         {
            title += " " + params[t++];
         }
         //Trim off the leading and trailing quotes
         if (title.substr(0,1) == "\"" && title.substr(title.length - 1,1)== "\"")
         {
            title = title.substr(1, title.length - 2);
            t--;
         }
         num = title;
      }
      dateHash[type] = num;
   }
   //date is synonymous with day
   if (dateHash["day"] == null)
   {
      dateHash["day"] = dateHash["date"];
   }
   return dateHash;
};

//This function finds the date specified in the reminder 
//parameters.  It will return null if no match can be
//found.  This function is not intended to be used by
//other plugins.
window.findDateForReminder= function findDateForReminder( dateHash, baseDate, leadTimeLowerBound, leadTimeUpperBound)
{
   if (baseDate == null)
   {
     baseDate = new Date().getMidnight();
   }
   var hashKey = baseDate.convertToYYYYMMDDHHMM();
   for (var k in dateHash)
   {
      hashKey += "," + k + "|" + dateHash[k];
   }
   hashKey += "," + leadTimeLowerBound.convertToYYYYMMDDHHMM();
   hashKey += "," + leadTimeUpperBound.convertToYYYYMMDDHHMM();
   if (reminderCache[hashKey] == null)
   {
      //If we don't find a match in this run, then we will
      //cache that the reminder can't be matched.
      reminderCache[hashKey] = false;
   }
   else if (reminderCache[hashKey] == false)
   {
      //We've already tried this date and failed
      return null;
   }
   else
   {
      return reminderCache[hashKey];
   }
   
   var bOffsetSpecified = dateHash["offsetyear"] != null || 
				dateHash["offsetmonth"] != null || 
				dateHash["offsetday"] != null || 
				dateHash["offsetdayofweek"] != null || 
				dateHash["recurdays"] != null;
   
   // If we are matching the base date for a dayofweek offset, look for the base date a 
   //little further back.
   var tmp1leadTimeLowerBound = leadTimeLowerBound;  
   if ( dateHash["offsetdayofweek"] != null)
   {
      tmp1leadTimeLowerBound = leadTimeLowerBound.addDays(-6);  
   }
   var matchedDate = baseDate.findMatch(dateHash, tmp1leadTimeLowerBound, leadTimeUpperBound);
   if (matchedDate != null)
   {
      var newMatchedDate = matchedDate;
      if (dateHash["recurdays"] != null)
      {
         while (newMatchedDate.getTime() < leadTimeLowerBound.getTime())
         {
            newMatchedDate = newMatchedDate.addDays(dateHash["recurdays"]);
         }
      }
      else if (dateHash["offsetyear"] != null || 
		dateHash["offsetmonth"] != null || 
		dateHash["offsetday"] != null || 
		dateHash["offsetdayofweek"] != null)
      {
         var tmpdateHash = cloneParams(dateHash);
         tmpdateHash["year"] = dateHash["offsetyear"];
         tmpdateHash["month"] = dateHash["offsetmonth"];
         tmpdateHash["day"] = dateHash["offsetday"];
         tmpdateHash["dayofweek"] = dateHash["offsetdayofweek"];
	 var tmpleadTimeLowerBound = leadTimeLowerBound;
	 var tmpleadTimeUpperBound = leadTimeUpperBound;
	 if (tmpdateHash["offsetdayofweek"] != null)
	 {
	 	if (tmpdateHash["negativeOffsetDayOfWeek"] == 1)
		{
		   tmpleadTimeLowerBound = matchedDate.addDays(-6);
		   tmpleadTimeUpperBound = matchedDate;

		}
		else
		{
		   tmpleadTimeLowerBound = matchedDate;
		   tmpleadTimeUpperBound = matchedDate.addDays(6);
		}

	 }
	 newMatchedDate = matchedDate.findMatch(tmpdateHash, tmpleadTimeLowerBound, tmpleadTimeUpperBound);
         //The offset couldn't be matched.  return null.
         if (newMatchedDate == null)
         {
            return null;
         }
      }
      if (newMatchedDate.isBetween(leadTimeLowerBound, leadTimeUpperBound))
      {
         reminderCache[hashKey] = newMatchedDate;
         return newMatchedDate;
      }
   }
   return null;
};

//This does much the same job as findDateForReminder, but
//this one doesn't deal with offsets or recurring 
//reminders.
Date.prototype.findMatch = function findMatch(dateHash, leadTimeLowerBound, leadTimeUpperBound)
{

   var bSpecifiedYear =     (dateHash["year"] != null);
   var bSpecifiedMonth =     (dateHash["month"] != null);
   var bSpecifiedDay =     (dateHash["day"] != null);
   var bSpecifiedDayOfWeek =     (dateHash["dayofweek"] != null);
   if (bSpecifiedYear && bSpecifiedMonth && bSpecifiedDay)
   {
      return new Date(dateHash["year"], dateHash["month"]-1, dateHash["day"], 0, 0);
   }
   var bMatchedYear = !bSpecifiedYear;
   var bMatchedMonth = !bSpecifiedMonth;
   var bMatchedDay = !bSpecifiedDay;
   var bMatchedDayOfWeek = !bSpecifiedDayOfWeek;
   if (bSpecifiedDay && bSpecifiedMonth && !bSpecifiedYear && !bSpecifiedDayOfWeek)
   {

      //Shortcut -- First try this year.  If it's too small, try next year.
      var tmpMidnight = this.getMidnight();
      var tmpDate = new Date(this.getFullYear(), dateHash["month"]-1, dateHash["day"], 0,0);
      if (tmpDate.getTime() < leadTimeLowerBound.getTime())
      {
         tmpDate = new Date((this.getFullYear() + 1), dateHash["month"]-1, dateHash["day"], 0,0);
      }
      if ( tmpDate.isBetween(leadTimeLowerBound, leadTimeUpperBound))
      {
         return tmpDate;
      }
      else
      {
         return null;
      }
   }

   var newDate = leadTimeLowerBound; 
   while (newDate.isBetween(leadTimeLowerBound, leadTimeUpperBound))
   {
      var tmp = testDate(newDate, dateHash, bSpecifiedYear, bSpecifiedMonth, bSpecifiedDay, bSpecifiedDayOfWeek);
      if (tmp != null)
        return tmp;
      newDate = newDate.addDays(1);
   }
};

function testDate(testMe, dateHash, bSpecifiedYear, bSpecifiedMonth, bSpecifiedDay, bSpecifiedDayOfWeek)
{
   var bMatchedYear = !bSpecifiedYear;
   var bMatchedMonth = !bSpecifiedMonth;
   var bMatchedDay = !bSpecifiedDay;
   var bMatchedDayOfWeek = !bSpecifiedDayOfWeek;
   if (bSpecifiedYear)
   {
      bMatchedYear = (dateHash["year"] == testMe.getFullYear());
   }
   if (bSpecifiedMonth)
   {
      bMatchedMonth = ((dateHash["month"] - 1)  == testMe.getMonth() );
   }
   if (bSpecifiedDay)
   {
      bMatchedDay = (dateHash["day"] == testMe.getDate());
   }
   if (bSpecifiedDayOfWeek)
   {
      bMatchedDayOfWeek = (dateHash["dayofweek"] == testMe.getDay());
   }

   if (bMatchedYear && bMatchedMonth && bMatchedDay && bMatchedDayOfWeek)
   {
      return testMe;
   }
};

//Returns true if the date is in between two given dates
Date.prototype.isBetween = function isBetween(lowerBound, upperBound)
{
  return (this.getTime() >= lowerBound.getTime() && this.getTime() <= upperBound.getTime());
}
//Return a new date, with the time set to midnight (0000)
Date.prototype.getMidnight = function getMidnight()
{
   return new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0);
};
// Add the specified number of days to a date.
Date.prototype.addDays = function addDays(numberOfDays)
{
   return new Date(this.getFullYear(), this.getMonth(), this.getDate() + numberOfDays, 0, 0);
};
//Return the number of days between two dates.
Date.prototype.getDifferenceInDays = function getDifferenceInDays(otherDate)
{
//I have to do it this way, because this way ignores daylight savings
   var tmpDate = this.addDays(0);
   if (this.getTime() > otherDate.getTime())
   {
      var i = 0;
      for (i = 0; tmpDate.getTime() > otherDate.getTime(); i++)
      {
         tmpDate = tmpDate.addDays(-1);
      }
      return i;
   }
   else
   {
      var i = 0;
      for (i = 0; tmpDate.getTime() < otherDate.getTime(); i++)
      {
         tmpDate = tmpDate.addDays(1);
      }
      return i * -1;
   }
   return 0;
};
function cloneParams(what) {
    var tmp = {};
    for (var i in what) {
        tmp[i] = what[i];
    }
    return tmp;
}
// Substitute date components into a string
Date.prototype.formatStringDateOnly = function formatStringDateOnly(template)
{
	template = template.replace("YYYY",this.getFullYear());
	template = template.replace("YY",String.zeroPad(this.getFullYear()-2000,2));
	template = template.replace("MMM",config.messages.dates.months[this.getMonth()]);
	template = template.replace("0MM",String.zeroPad(this.getMonth()+1,2));
	template = template.replace("MM",this.getMonth()+1);
	template = template.replace("DDD",config.messages.dates.days[this.getDay()]);
	template = template.replace("0DD",String.zeroPad(this.getDate(),2));
	template = template.replace("DD",this.getDate());
	return template;
};

//}}}
TiddlyWiki's RSS feed is available [[here|http://www.tiddlywiki.com/index.xml]]. You can generate an RSS feed for your own TiddlyWiki using the GenerateAnRssFeed option.
/***
|''Name:''|RuStyle|
|''Description:''|TW russianization|
|''Version:''|0.6.0|
|''Date:''|2006|
|''Source:''|http://www.glebsite.ru|
|''Author:''|Глеб Тржемецкий (Gleb Trzhemetski)|
|''License:''|BSD open source license|
|''CoreVersion:''|2.1.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|

***/

//{{{

merge(config.messages,{
	customConfigError: "Возникли проблемы при загрузке плагинов. См. PluginManager ",
	pluginError: "Ошибка: %0",
	pluginDisabled: "Не задействован, так как помечен 'systemConfigDisable' ",
	pluginForced: "Задействован, так как помечен 'systemConfigForce' ",
	pluginVersionError: "Не задействован из-за несоответствия версий",
	nothingSelected: "Ничего не выделено.",
	savedSnapshotError: "Похоже, эта wiki была неправильно сохранена. См. http://www.tiddlywiki.com/#DownloadSoftware ",
	subtitleUnknown: "(неизвестно)",
	undefinedTiddlerToolTip: "Записи '%0' не существует",
	shadowedTiddlerToolTip: "Запись '%0' заполнена по умолчанию.",
	tiddlerLinkTooltip: "%0 - %1, %2",
	externalLinkTooltip: "Ссылка: %0",
	noTags: "Нет помеченных записей",
	notFileUrlError: "Сохраните TiddlyWiki в файл, чтобы иметь возможность сохранять изменения ",
	cantSaveError: "Сохранение невозможно. Либо ваш браузер не подерживает эту функцию (используйте по возможности FireFox), либо путь к файлу содержит недопустимые символы",
	invalidFileError: "Файл '%0' не похож на файл TiddlyWiki",
	backupSaved: "Резервная копия сохранена",
	backupFailed: "Не получилось сохранить резервную копию",
	rssSaved: "RSS сохранен",
	rssFailed: "Не получилось сохранить RSS",
	emptySaved: "Пустой шаблон сохранен",
	emptyFailed: "Не получилось сохранить пустой шаблон",
	mainSaved: "Файл TiddlyWiki сохранен",
	mainFailed: "Не получилось сохранить файл TiddlyWiki. Изменения не сохранены",
	macroError: "Ошибка в сценарии <<%0>>",
	macroErrorDetails: "Ошибка при выполнении сценария  <<%0>>:\n%1",
	missingMacro: "Нет такого сценария",
	overwriteWarning: "Запись '%0' уже есть. Нажмите OK, чтобы перезаписать",
	unsavedChangesWarning: "ВНИМАНИЕ! Есть несохраненные изменения! \n\nНажмите OK, чтобы сохранить\nНажмите CANCEL чтобы не сохранять",
	confirmExit: "--------------------------------\n\nИзменения в TiddlyWiki не сохранены. Если вы продолжите, они потеряются.\n\n--------------------------------",
	saveInstructions: "SaveChanges",
	unsupportedTWFormat: "Неподдерживаемый TiddlyWiki формат '%0'",
	tiddlerSaveError: "Ошибка при сохранении записи '%0'",
	tiddlerLoadError: "Ошибка при открытии записи '%0'",
	wrongSaveFormat: "Не получается сохранить в формате '%0'. Сохранено в стандартном формате.",
	invalidFieldName: "Недопустимое имя поля %0",
	fieldCannotBeChanged: "Поле '%0' нельзя изменять"});

merge(config.messages.messageClose,{
	text: "×",
	tooltip: "скрыть сообщение"});

config.messages.dates.months = ["января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября","декабря"];
config.messages.dates.days = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
config.messages.dates.shortMonths = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII"];
config.messages.dates.shortDays = ["Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"];

merge(config.views.wikified.tag,{
	labelNoTags: "меток нет",
	labelTags: "метки: ",
	openTag: "Открыть метку '%0'",
	tooltip: "Показать записи, помеченные как '%0'",
	openAllText: "Открыть все",
	openAllTooltip: "Открыть все эти записи",
	popupNone: "Нет других записей с меткой '%0'"});

merge(config.views.wikified,{
	defaultText: "Записи '%0' не существует. Создайте ее двойным щелчком.",
	defaultModifier: "(?)",
	shadowModifier: "(системная запись)",
	createdPrompt: "создана: "});

merge(config.views.editor,{
	tagPrompt: "Введите метки, разделенные пробелами, [[используйте квадратные скобки]] если нужно, или выберите метки из списка.",
	defaultText: "Здесь мог бы быть осмысленный текст на тему '%0'"});

merge(config.views.editor.tagChooser,{
	text: "метки",
	tooltip: "Выберите метки из списка",
	popupNone: "Меток пока нет",
	tagTooltip: "Добавить метку '%0'"});

merge(config.macros.search,{
	label: "поиск",
	prompt: "Поиск по всем записям",
	accessKey: "F",
	successMsg: "%0 записей, соответствующих критерию: %1",
	failureMsg: "Не найдено записей по запросу: %0"});

merge(config.macros.tagging,{
	label: "отмечены: ",
	labelNotTag: "нету",
	tooltip: "Список записей, помеченных: '%0'"});

merge(config.macros.timeline,{
	dateFormat: "DD.mmm.YYYY"});

merge(config.macros.allTags,{
	tooltip: "Показать записи, помеченные '%0'",
	noTags: "Нет таких записей"});

config.macros.list.all.prompt = "Все записи по алфавиту";
config.macros.list.missing.prompt = "Ненаписанные";
config.macros.list.orphans.prompt = "Записи, на которые нет ссылок";
config.macros.list.shadowed.prompt = "Системные записи";

merge(config.macros.closeAll,{
	label: "закрыть все",
	prompt: "Закрыть все записи \(кроме редактируемых\)"});

merge(config.macros.permaview,{
	label: "ссылка",
	prompt: "Постоянная ссылка"});

merge(config.macros.saveChanges,{
	label: "сохранить изменения",
	prompt: "Сохранить всё",
	accessKey: "S"});

merge(config.macros.newTiddler,{
	label: "новая запись",
	prompt: "Создать новую запись",
	title: "Новая запись",
	accessKey: "N"});

merge(config.macros.newJournal,{
	label: "новая датированная запись",
	prompt: "Создать запись, с названием, соответствующим текущей дате",
	accessKey: "J"});

merge(config.macros.plugins,{
	skippedText: "(Этот плагин не запущен, так как был добавлен после запуска)",
	noPluginText: "Плагинов нет",
	confirmDeleteText: "Вы действительно хотите удалить записи:\n\n%0",
	listViewTemplate : {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Title', field: 'title', tiddlerLink: 'title', title: "Title", type: 'TiddlerLink'},
			{name: 'Forced', field: 'forced', title: "Forced", tag: 'systemConfigForce', type: 'TagCheckbox'},
			{name: 'Disabled', field: 'disabled', title: "Disabled", tag: 'systemConfigDisable', type: 'TagCheckbox'},
			{name: 'Executed', field: 'executed', title: "Loaded", type: 'Boolean', trueText: "Yes", falseText: "No"},
			{name: 'Error', field: 'error', title: "Status", type: 'Boolean', trueText: "Error", falseText: "OK"},
			{name: 'Log', field: 'log', title: "Log", type: 'StringList'}
			],
		rowClasses: [
			{className: 'error', field: 'error'},
			{className: 'warning', field: 'warning'}
			],
		actions: [
			{caption: "Действия...", name: ''},
			{caption: "Сделать не системной записью", name: 'remove'},
			{caption: "Удалить из wiki", name: 'delete'}
			]}
	});

merge(config.macros.refreshDisplay,{
	label: "обновить",
	prompt: "Обновить отображение"
	});

merge(config.macros.importTiddlers,{
	defaultPath: "http://www.tiddlywiki.com/index.html",
	fetchLabel: "загрузить",
	fetchPrompt: "Загрузить файл TiddlyWiki",
	fetchError: "Ошибка при загрузке файла",
	confirmOverwriteText: "Вы уверены, что хотите перезаписать следующие записи:\n\n%0",
	wizardTitle: "Импорт записей из файла TiddlyWiki",
	step1: "Шаг 1: Введите путь к файлу",
	step1prompt: "Введите URL или путь к локальному файлу: ",
	step1promptFile: "...или выберите тут: ",
	step1promptFeeds: "...или из предустановленных: ",
	step1feedPrompt: "Выберите...",
	step2: "Шаг 2: Загрузка файла",
	step2Text: "Дождитесь окончания загрузки: %0",
	step3: "Шаг 3: Выберите записи для импорта:",
	step4: "%0 записей импортировано",
	step5: "Готово!",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Title', field: 'title', title: "Title", type: 'String'},
			{name: 'Snippet', field: 'text', title: "Snippet", type: 'String'},
			{name: 'Tags', field: 'tags', title: "Tags", type: 'Tags'}
			],
		rowClasses: [
			],
		actions: [
			{caption: "Действия...", name: ''},
			{caption: "Импортировать", name: 'import'}
			]}
	});

merge(config.commands.closeTiddler,{
	text: "закрыть",
	tooltip: "Закрыть запись"});

merge(config.commands.closeOthers,{
	text: "закрыть остальные",
	tooltip: "Закрыть все записи, кроме этой"});

merge(config.commands.editTiddler,{
	text: "редактировать",
	tooltip: "Редактировать запись",
	readOnlyText: "исходный код",
	readOnlyTooltip: "Просмотреть исходный код записи"});

merge(config.commands.saveTiddler,{
	text: "готово",
	tooltip: "Сохранить изменения"});

merge(config.commands.cancelTiddler,{
	text: "отменить",
	tooltip: "Отменить изменения",
	warning: "Вы уверены, что не хотите сохранить запись '%0'?",
	readOnlyText: "обычный вид",
	readOnlyTooltip: "Вернуться к обычному просмотру"});

merge(config.commands.deleteTiddler,{
	text: "удалить",
	tooltip: "Удалить запись",
	warning: "Вы действительно хотите удалить '%0'?"});

merge(config.commands.permalink,{
	text: "ссылка",
	tooltip: "Постоянная ссылка на эту запись"});

merge(config.commands.references,{
	text: "ссылки сюда",
	tooltip: "Показать записи, ссылающиеся на эту",
	popupNone: "Ссылок нет"});

merge(config.commands.jump,{
	text: "перейти...",
	tooltip: "Перейти на другие открытые записи"});

merge(config.shadowTiddlers,{
	DefaultTiddlers: "GettingStarted",
	MainMenu: "GettingStarted",
	SiteTitle: "~TiddlyWiki(ru)",
	SiteSubtitle: "нелинейный гипертекстовый органайзер",
	SiteUrl: "http://www.tiddlywiki.com/",
	GettingStarted: "Для того, чтобы начать работать с TiddlyWiki, вы можете поменять следующие записи:\n* SiteTitle & SiteSubtitle: Заголовок и подзаголовок сайта (после сохранения вы увидите их в заголовке окна)\n* MainMenu: Меню (оно обычно слева)\n* DefaultTiddlers: Список записей, которые будут открыты при запуске wiki.\nИмя, которым будут подписаны ваши записи, можете ввести тут: <<option txtUserName>>",
	SideBarOptions: "<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY г.'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'установки »' 'Различные опции TidlyWiki'>>",
	OptionsPanel: "Эти установки сохраняются в&nbsp\;Вашем браузере\n\nВаше имя для подписывания заметок. Лучше, если вы напишете его WotTak\n\n<<option txtUserName>>\n<<option chkSaveBackups>> Сохранять резервные копии\n<<option chkAutoSave>> Автосохранение\n<<option chkRegExpSearch>> Поиск с&nbsp\;регулярными выражениями\n<<option chkCaseSensitiveSearch>> Поиск чувствителен к&nbsp\;регистру?\n<<option chkAnimate>> Анимация\n\n----\n[[Дополнительно|AdvancedOptions]]\n[[Плагины|PluginManager]]\n[[Импорт записей|ImportTiddlers]]",
	AdvancedOptions: "<<option chkGenerateAnRssFeed>> Публиковать RSS\n<<option chkOpenInNewWindow>>  Ссылки в новом окне\n<<option chkSaveEmptyTemplate>> Сохранять пустой шаблон\n<<option chkToggleLinks>> Щелчок по ссылке на открытую заметку закрывает ее\n^^(с Ctrl или другой функциональной клавишей не&nbsp\;будет срабатывать)^^\n<<option chkHttpReadOnly>> Не показывать инструменты редактирования через HTTP\n<<option chkForceMinorUpdate>> Не менять дату заметки при редактировании\n^^(для изменеия - жмите Shift при сохранеии, либо сохраняйте, нажимая Ctrl-Shift-Enter^^\n<<option chkConfirmDelete>> Подтверждать удаление\nМаксимум строк в&nbsp\;поле редактирования: <<option txtMaxEditRows>>\nСохранять бэкапы в&nbsp\;папке: <<option txtBackupFolder>>\n<<option chkInsertTabs>> При нажатии Tab вводить знак табуляции, а&nbsp\;не&nbsp\;переходить к&nbsp\;следующему элементу формы",
	SideBarTabs: "<<tabs txtMainTab История История TabTimeline Все 'Все заметки' TabAll Метки 'Все метки' TabTags Ещё... 'Остальные списки' TabMore>>",
	TabTimeline: "<<timeline>>",
	TabAll: "<<list all>>",
	TabTags: "<<allTags>>",
	TabMore: "<<tabs txtMoreTab Нужные 'Ненаписанные заметки' TabMoreMissing Забытые 'Забытые заметки' TabMoreOrphans Системные 'Системные записи' TabMoreShadowed>>",
	TabMoreMissing: "<<list missing>>",
	TabMoreOrphans: "<<list orphans>>",
	TabMoreShadowed: "<<list shadowed>>",
	PluginManager: "<<plugins>>",
	ImportTiddlers: "<<importTiddlers>>"});



//}}}
Safari can SaveChanges using the TiddlySaver Java applet.

There are still some issues with Safari:
* Permalinks with Unicode characters in them (like [[this one|http://avm.free.fr/tidlipo.html#AdaptationFran%C3%A7aise]]) don't work properly
SafeMode can be selected by putting {{{#start:safe}}} (see StartupParameters) on the end of a TiddlyWiki URL. It stops TiddlyWiki from executing any [[Plugins]], modifying shadow tiddlers, or reading/writing cookies. It can be useful for tracking down problems caused by rogue [[Plugins]].
This is one of the InterfaceOptions you can use to customize TiddlyWiki. It determines whether TiddlyWiki creates a backup file each time you SaveChanges. I'd suggest keeping it switched on for safety!
If you've followed the appropriate [[Installation]] guidelines, then you can save your changes as you go along.

It's important to save changes using ~TiddlyWiki's built in saving functionality (rather than the browser's 'Save As' function - [[here's why|SaveUnpredictabilities]]). Your local version of ~TiddlyWiki will have a button on the right hand side that says 'save changes' - that's the button you'll need to use.

It's worthwhile configuring your backup settings. You can edit the AdvancedOptions to decide when backups are made and where they're saved.

If you're still experiencing problems, the following links will help: 
*General guidance on FireFox, InternetExplorer, [[Opera]], [[Camino]] or [[Safari]]
* if you're using InternetExplorer on Windows you might run into XP ServicePack2Problems or VistaIssues
This causes a blank, template TiddlyWiki to be saved alongside your file when you SaveChanges. It's intended to help people who are distributing TiddlyWikiAdaptations, and isn't needed when you're an end-user of TiddlyWiki.

The template TiddlyWiki is called 'empty.html'.
Saves any pending edits to the current tiddler, and switches it to the default view. It is used with the ToolbarMacro like this:
{{{
<<toolbar saveTiddler>>
}}}
Several people have reported problems with reusing TiddlyWiki when they have used the File/Save command of their browser to save it. The issue is that some browsers (notably FireFox) don't save the text of the HTML file exactly as it appears on the server, but rather save a snapshot of the current state of the page. In the case of a highly dynamic page like TiddlyWiki, this leads to all sorts of peculiarness...

TiddlyWiki now displays a warning if it thinks that it has been saved wrongly.
The basic version of ~TiddlyWiki includes basic search functionality. Using this basic functionality, when a search term is entered, all tiddlers that contain this term are opened, with the search term highlighted wherever it appears.

However, using the [[plugin architecture|Plugins]] of ~TiddlyWiki, the [[community|Help and Support]] has written a number of search plugins which can be installed on your local ~TiddlyWiki files easily. The most popular search plugins are:
*Eric Shulman's ~SearchOptionsPlugin - a highly configurable plugin that produces a list of tiddler titles with options for advanced searches. Available at http://www.TiddlyTools.com/#SearchOptionsPlugin
*Udo Borkowski's ~YourSearchPlugin - opens the search results in a large iFrame in the same style as Google (result, then synopsis). Available at http://tiddlywiki.abego-software.de/
*Frederik Dohr's ~SimpleSearchPlugin (which this site is using) - copy and paste the code on [[this page|http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/SimpleSearchPlugin.js]] into a new tiddler, tag the tiddler with systemConfig, and save / re-open your ~TiddlyWiki.
You can find out more about the various search plugins on the [[Community Wiki|http://tiddlywiki.org/wiki/Enhanced_Search]].
Released in December 2004, the [[second version|secondversion.html]] of TiddlyWiki grew 50% over the FirstVersion to 76KB. It added IncrementalSearch, the ReferencesButton, the PermaLinkButton, PermaView, CloseAll, SmoothScrolling, an ImprovedSidebar, an animation for the CloseButton and a tiny EasterEgg in homage to Macintosh OS X. It also introduced a new SiteDesign.
One of the neatest features of TiddlyWiki is that it is entirely self-contained in a single HTML file - even including graphics like the GradientMacro. The file contains the actual hypertext document, and the ~JavaScript, ~CascadingStyleSheets and HTML necessary to both view and edit it. This means that it is trivial to host a TiddlyWiki on a website, or to distribute one by email. And anyone with a reasonably recent web browser will be able to read and edit it.
Out of the box, ~TiddlyWiki doesn't have a Server Side back end. In many applications that's a great strength because it means that you can work with ~TiddlyWiki without having to be connected to the Internet or, because it's SelfContained, installing any software.

In other applications, a ~ServerSide can be very useful, particularly if you want to edit a ~TiddlyWiki while it's online, or you need lots of people to be able to edit a ~TiddlyWiki at the same time. The development [[Community]] has come up with several ~ServerSide implementations that are suitable for a range of applications. The most popular and up-to-date ones that you can download and install on your own servers are:
* [[TiddlyWeb|http://www.tiddlywiki.org/wiki/TiddlyWeb]] in Python from Chris Dent
* [[Coral|https://coral.dev.java.net/]] in Java 
* [[ccTiddly|http://cctiddly.sourceforge.net/]] from Matthew So (aka ~CoolCold)
* [[PrinceTiddlyWiki|http://ptw.sourceforge.net/]] from Bram Chen
* [[ZiddlyWiki|http://www.ziddlywiki.org/]] from Bob ~McElrath and Tim Morgan
* [[PhpTiddlyWiki|http://www.patrickcurry.com/tiddly/]] from Patrick Curry

[[TiddlySpot|http://tiddlyspot.com]] offers a fantastic, free hosted version of ~TiddlyWiki with some very cool features (although at present it does not support simultaneous editing by multiple users). It's based on ~BidiX's remarkable [[UploadPlugin|http://tiddlywiki.bidix.info/#HowToUpload]].

There are also some TiddlyWikiAdaptations that have taken some of the code and ideas from ~TiddlyWiki and diverged off to do their own thing.
Internet Explorer Windows XP ~SP2 seems to have a magical ability to keep track of html files that have been downloaded from the internet and saved on an NTFS drive. By storing additional data in an [[alternate data stream|http://www.microsoft.com/technet/sysinternals/FileAndDisk/Streams.mspx]], it manages to keep them in the 'Internet' zone regardless of attempts to rename or modify the file. But, in order to be able to SaveChanges, TiddlyWiki needs to run in the 'My Computer' zone.

The solution is to right-click on the TiddlyWiki html file and choose //Properties//. If the file is blocked, you'll see an 'Unblock' button on the resulting property sheet that removes the protection and allows the file to open in the 'My Computer' zone. Then open the file in Internet Explorer - it might put up its information bar asking you whether you want to run it. You need to 'Allow blocked content' to let TiddlyWiki do its stuff.
<<<
If you find yourself running into the information bar frequently, you can disable it by visiting the "Options" dialog and, on the "Advanced" tab make sure that "Allow active content to run in files on My Computer" is checked.

Alternatively, you can rename the file to {{{*.hta}}} which has the added bonus of automatically granting all necessary save permissions.
<<<
This is all a bit frustrating. An easy alternative is to use FireFox, which seems to do the trick on all platforms.
ShadowTiddlers are special tiddlers that have default values that take over if they are undefined or deleted. For example, PageTemplate and StyleSheetColors are both shadow tiddlers.

ShadowTiddlers make it harder to render a TiddlyWiki inoperative by accidentally deleting something important.  You can see a list of shadow tiddlers in the Shadowed tab under the More tab in the right hand column.  When you create a tiddler with the same title you override the underlying shadow tiddler. 
----
<<list shadowed>>
/***
|''Name''|SimpleSearchPlugin|
|''Description''|displays search results as a simple list of matching tiddlers|
|''Authors''|FND|
|''Version''|0.4.0|
|''Status''|stable|
|''Source''|http://devpad.tiddlyspot.com/#SimpleSearchPlugin|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/SimpleSearchPlugin.js|
|''License''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''Keywords''|search|
!Revision History
!!v0.2.0 (2008-08-18)
* initial release
!!v0.3.0 (2008-08-19)
* added Open All button (renders Classic Search option obsolete)
* sorting by relevance (title matches before content matches)
!!v0.4.0 (2008-08-26)
* added tag matching
!To Do
* tag matching optional
* animations for container creation and removal
* when clicking on search results, do not scroll to the respective tiddler (optional)
* use template for search results
!Code
***/
//{{{
if(!version.extensions.SimpleSearchPlugin) { //# ensure that the plugin is only installed once
version.extensions.SimpleSearchPlugin = { installed: true };

if(!plugins) { var plugins = {}; }
plugins.SimpleSearchPlugin = {
	heading: "Search Results",
	containerId: "searchResults",
	btnCloseLabel: "close",
	btnCloseTooltip: "dismiss search results",
	btnCloseId: "search_close",
	btnOpenLabel: "Open all",
	btnOpenTooltip: "open all search results",
	btnOpenId: "search_open",
	
	displayResults: function(matches, query) {
		story.refreshAllTiddlers(true); // update highlighting within story tiddlers
		var el = document.getElementById(this.containerId);
		query = '"""' + query + '"""'; // prevent WikiLinks
		if(el) {
			removeChildren(el);
		} else { //# fallback: use displayArea as parent
			var container = document.getElementById("displayArea");
			el = document.createElement("div");
			el.setAttribute("id", this.containerId);
			el = container.insertBefore(el, container.firstChild);
		}
		var msg = "!" + this.heading + "\n";
		if(matches.length > 0) {
			msg += "''" + config.macros.search.successMsg.format([matches.length.toString(), query]) + ":''\n";
			this.results = [];
			for(var i = 0 ; i < matches.length; i++) {
				this.results.push(matches[i].title);
				msg += "* [[" + matches[i].title + "]]\n";
			}
		} else {
			msg += "''" + config.macros.search.failureMsg.format([query]) + "''"; // XXX: do not use bold here!?
		}
		createTiddlyButton(el, this.btnCloseLabel, this.btnCloseTooltip, plugins.SimpleSearchPlugin.closeResults, "button", this.btnCloseId);
		wikify(msg, el);
		if(matches.length > 0) { // XXX: redundant!?
			createTiddlyButton(el, this.btnOpenLabel, this.btnOpenTooltip, plugins.SimpleSearchPlugin.openAll, "button", this.btnOpenId);
		}
	},

	closeResults: function() {
		var el = document.getElementById(plugins.SimpleSearchPlugin.containerId);
		removeNode(el);
		plugins.SimpleSearchPlugin.results = null;
		highlightHack = null;
	},

	openAll: function(ev) {
		story.displayTiddlers(null, plugins.SimpleSearchPlugin.results);
		return false;
	}
};

config.shadowTiddlers.StyleSheetSimpleSearch = "/*{{{*/\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " {\n" +
	"\toverflow: auto;\n" +
	"\tpadding: 5px 1em 10px;\n" +
	"\tbackground-color: [[ColorPalette::TertiaryPale]];\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " h1 {\n" +
	"\tmargin-top: 0;\n" +
	"\tborder: none;\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " ul {\n" +
	"\tmargin: 0.5em;\n" +
	"\tpadding-left: 1.5em;\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " .button {\n" +
	"\tdisplay: block;\n" +
	"\tborder-color: [[ColorPalette::TertiaryDark]];\n" +
	"\tpadding: 5px;\n" +
	"\tbackground-color: [[ColorPalette::TertiaryLight]];\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.containerId + " .button:hover {\n" +
	"\tborder-color: [[ColorPalette::SecondaryMid]];\n" +
	"\tbackground-color: [[ColorPalette::SecondaryLight]];\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.btnCloseId + " {\n" +
	"\tfloat: right;\n" +
	"\tmargin: -5px -1em 5px 5px;\n" +
	"}\n\n" +
	"#" + plugins.SimpleSearchPlugin.btnOpenId + " {\n" +
	"\tfloat: left;\n" +
	"\tmargin-top: 5px;\n" +
	"}\n" +
	"/*}}}*/";
store.addNotification("StyleSheetSimpleSearch", refreshStyles);

// override Story.search()
Story.prototype.search = function(text, useCaseSensitive, useRegExp) {
	highlightHack = new RegExp(useRegExp ? text : text.escapeRegExp(), useCaseSensitive ? "mg" : "img");
	var matches = store.search(highlightHack, null, "excludeSearch");
	var q = useRegExp ? "/" : "'";
	plugins.SimpleSearchPlugin.displayResults(matches, q + text + q);
};

// override TiddlyWiki.search() to sort by relevance
TiddlyWiki.prototype.search = function(searchRegExp, sortField, excludeTag, match) {
	var candidates = this.reverseLookup("tags", excludeTag, !!match);
	var primary = [];
	var secondary = [];
	var tertiary = [];
	for(var t = 0; t < candidates.length; t++) {
		if(candidates[t].title.search(searchRegExp) != -1) {
			primary.push(candidates[t]);
		} else if(candidates[t].tags.join(" ").search(searchRegExp) != -1) {
			secondary.push(candidates[t]);
		} else if(candidates[t].text.search(searchRegExp) != -1) {
			tertiary.push(candidates[t]);
		}
	}
	var results = primary.concat(secondary).concat(tertiary);
	if(sortField) {
		results.sort(function(a, b) {
			return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);
		});
	}
	return results;
};

} //# end of "install only once"
//}}}
[[Справка|Справка по TiddlyWiki]] по интегрированной среде DRAKON языков [[ДРАКОН|Язык Дракон]] и ГНОМ + [[ДРОН]] от 3.02.2009
Дракон
http://www.tiddlywiki.com/
TiddlyWiki defines a small number of SpecialTags that are used to indicate that tiddlers should be treated differently in some way:
* ''excludeSearch'': excludes a tiddler from search results
* ''excludeLists'': excludes a tiddler from the lists in the sidebar tabs
* ''systemConfig'': marks tiddlers that contain JavaScript that should be executed once TiddlyWiki has loaded
* ''excludeMissing'': excludes a tiddler from the processing that generates the MissingTiddlers list. Use it when you have a tiddler that contains links to missing tiddlers and you don't want those missing links to appear in the MissingTiddlers list
~TiddlyWiki uses several "special tiddlers" to perform a number of essential functions as follows:
*[[Configuration]] tiddlers configure the layout of the page, including the MainMenu, the SiteTitle, the SiteSubtitle and other features. 
*A tiddler called DefaultTiddlers is used to list the tiddlers that are shown at startup. 
*A tiddler called SaveChanges is automatically displayed if there's a problem with saving. Any of them can be edited with the changes taking effect immediately.
When it loads, TiddlyWiki looks for the names of tiddlers to open as a space-separated list after the # in the URL. If there are no tiddlers in the URL it instead loads the tiddlers named in DefaultTiddlers, one of the SpecialTiddlers.
TiddlyWiki obtains its StartupParameters from the //location// portion of it's URL (the bit after the '#'). At it's simplest, the StartupParameters can list the names of the tiddlers to be opened when the TiddlyWiki is opened:
{{{
http://www.tiddlywiki.com/#HelloThere JeremyRuston
}}}
In fact, that usage is equivalent to:
{{{
http://www.tiddlywiki.com/#open:HelloThere open:JeremyRuston
}}}
The complete list of commands is:
|!Command |!Description |!Example |
|open:title |Opens the tiddler with the specified title |http://www.tiddlywiki.com/#open:HelloThere |
|start:safe |Switches to SafeMode |http://www.tiddlywiki.com/#start:safe |
|search:text |Performs a search for the specified text |http://www.tiddlywiki.com/#search:jeremy |
|tag:text |Displays tiddlers tagged with the specified tag |http://www.tiddlywiki.com/#tag:news |
|newTiddler:title |Opens a new tiddler with the specified title in edit mode |http://www.tiddlywiki.com/#newTiddler:"This is a new tiddler" |
|newJournal:titleFormat |Opens a new tiddler with the specified DateFormatString |http://www.tiddlywiki.com/#newJournal:"YYYY MMM DD" |

See the details of the underlying ParameterParser for more details.
/***
This fixes a problem with the tabs slider
***/
/*{{{*/
#sidebarTabs .button {
	margin:0em 0.2em;
	padding:0.2em 0.3em;
	display:block;
}
/*}}}*/
/***
This is a sample style definition to demonstrate CustomCssClass formatting
***/
/*{{{*/
.wrappingClass {color: #666; background: #bbb;}
[[ChunkyButtonStyle]]
/*}}}*/
!Header 1
!!Header 2
!!!Header 3
!!!!Header 4
!!!!!Header 5
This is an example of a tab:

<<tabs txtFavourite
One "First tab" HelloThere
Two "Second tab" ThankYou
>>
*sample:
|!th1111111111|!th2222222222|
|>| colspan |
| rowspan |left|
|~| right|
|bgcolor(#a0ffa0):colored| center |
|caption|c
*another sample: see PeriodicTable.
For advanced effects, you can control the CSS style of a table by adding a row like this:
{{{
|cssClass|k
}}}
The TaggingMacro produces a list of links to tiddlers that carry the specified tag. If no tag is specified, it looks for tiddlers tagged with the name of the current tiddler. It looks like this:
{{{
<<tagging>>
<<tagging TiddlerTitle>>
<<tagging sep:[[, ]]>>
}}}
In HTML, the list is formatted like so:
{{{
<ul>
<li class="listTitle">List title label</li>
<li><a class="tiddlyLink ..." href="javascript:;" onclick="..."
	   refresh="link" tiddlyLink="ExampleOne">ExampleOne</a></li>
</ul>
}}}
The optional {{{sep}}} parameter specifies a string of characters to be inserted as a separator between each {{{<li>}}} element. In conjunction with the CSS {{{ul li {display: none;} }}} this allows the tagging list to be formatted as a nicely formatted inline list.
You can categorise a tiddler by assigning it with one or more special keywords called tags. 

Tiddlers which have been assigned tags can be accessed using the tagging menu that appears at the top right of each tiddler (when in read mode). For instance, this tiddler is tagged with "features", "terminology" and "gettingstarted". If you click on these tag names in the tagging menu, you get access to all the other tiddlers that have been given the same tag.

You can see a whole list of tags by looking in the [[SideBarTabs]], and selecting the Tags tab.

This site uses the standard convention that the names of tags start with a lower case letter, and tiddlers with an upper case letter, but this is not actually enforced.

Tags can be tiddlers themselves, with their own tags, so you can have hierarchies of tiddlers.  This is a surprisingly useful and powerful technique has been dubbed ~TagglyTagging by the [[Community]].
This is the ThirdVersion of TiddlyWiki, released in April 2005. The SecondVersion was released in December 2004, and before that the FirstVersion in September 2004.

See the RevisionHistory for details of minor changes and bug-fixes since the ThirdVersion. See HowToUpgrade an earlier version of TiddlyWiki to the latest revision.
A 'tiddler' is the name given to a unit of MicroContent in TiddlyWiki.

Tiddlers are pervasive in TiddlyWiki. The MainMenu is defined by a tiddler, plugins are delivered in tiddlers, there are special StyleSheet tiddlers, and so on.

Other systems have analogous concepts with more prosaic names: like "items", "entries", "entities". Even though "tiddler" is undoubtedly a SillyName it at least has the virtue of being confusingly distinctive rather than confusingly generic.
To hide text within a tiddler so that it is not displayed you can wrap it in {{{/%}}} and {{{%/}}}. It can be a useful trick for hiding drafts or annotating complex markup. Edit this tiddler to see an example.
/%This text is not displayed
until you try to edit %/
TiddlerSlicing allows you to use special notation to pull out a chunk of specially marked text from within a tiddler. Each slice has a name and a value which can be specified anywhere within a tiddler in any of these formats:
{{{
    theName:  textSlice
    |theName:| textSlice |
    |theName| textSlice |
}}}
The name may contain any of the characters "a-ZA-Z_0-9", and may also be decorated with {{{''}}} or {{{//}}} markers for ''bold'' and //italic// formatting that are ignored. For example:
{{{
    |''theName:''| textSlice |
}}}
Slices can be then be referenced by qualifying the parent tiddler name with the symbols "::" and the name of the slice. For example:
{{{
ColorPalette::PrimaryLight
}}}
TiddlerSlicing doesn't work eveywhere; at this point it is mainly intended to support the ColorPalette and similar usages.

Finally, here's an example of some more complex slice formatting:
{{{
version: 1.2.3.4
Author: Joe Brown
''Credits:'' ASmith BBrown CCalony
//~SeeAlso:// The rise and fall of the M-perium
|!Name|!Value|
|Name:|TextSlice Tester|
|URL:|http:\\sample.com\TestSliced |
|''Type:''| Plugin |
|//Source//| http:\\sample.com\TestSliced\src\text.js |
}}}
The slices defined in that example are:
|version|1.2.3.4|
|Author|Joe Brown|
|Credits|ASmith BBrown CCalony|
|~SeeAlso|The rise and fall of the M-perium|
|Name|TextSlice Tester|
|URL|http:\\sample.com\TestSliced|
|Type|Plugin|
|Source|http:\\sample.com\TestSliced\src\text.js|
[[Bookmarklets|http://en.wikipedia.org/wiki/Bookmarklet]] can be useful for TiddlyWiki hackers. They are browser bookmarks that contain embedded JavaScript that can reach into the currently loaded TiddlyWiki page to manipulate them and extract data.

Drag these links to your bookmark/favourites bar, or right click on them and choose "add to bookmarks" or "add to favourites":
* [[Scrub shadow tiddlers|javascript:(function(){if(window.version&&window.version.title=='TiddlyWiki'){for(var s in config.shadowTiddlers){store.removeTiddler(s);}refreshDisplay();}})()]] - deletes any overridden shadow tiddlers, reverting them to their default values. Handy when you’ve gone mad with PageTemplate customisations and your ~TiddlyWiki document won’t display properly
* [[Scrub tiddler fields|javascript:(function(){if(window.version&&window.version.title=='TiddlyWiki'){store.forEachTiddler(function(title,tiddler){tiddler.fields={};});refreshDisplay();}})()]] - all the extended fields from a ~TiddlyWiki document, including that pesky “changecount” field
* [[Rescue raw TiddlyWiki content|javascript:(function(){if(window.version&&window.version.title=='TiddlyWiki'){var w=window.open();w.document.open();w.document.write('<html><body><pre>');w.document.write(store.allTiddlersAsHtml().htmlEncode());w.document.write('</pre></body></html>');w.document.close();}})()]] - opens a new window containing the raw content of a ~TiddlyWiki.  Handy when you’ve inadvertently been editing an online version of TiddlyWiki that isn’t letting you save changes in the usual way

Saq Imtiaz has a more extensive [[collection of bookmarklets|http://lewcid.org/tiddlywiki-bookmarklets/]] with better documentation.

If you're creating your own bookmarklets, this [[editor|http://subsimple.com/bookmarklets/jsbuilder.htm]] and these [[tips|http://subsimple.com/bookmarklets/tips.asp]] are useful resources.
The ~TiddlySaver Java applet allows ~TiddlyWiki to save changes in a local version (from a file:// URL) of Safari, Opera and other browsers. It is a small file named [["TiddlySaver.jar"|TiddlySaver.jar]] that must be placed in the same directory as your ~TiddlyWiki file. As of August 2008, when an empty ~TiddlyWiki file is downloaded using either Safari or Opera, it is bundled with a copy of the ~TiddlySaver.jar file in a zip file - both files must be in the same directory ''whenever the ~TiddlyWiki file is opened'' in order to work.

[["TiddlySaver.jar"|TiddlySaver.jar]]  is signed by [[UnaMesa Association|UnaMesa]]. The [[UnaMesa Association|UnaMesa]] certificate is signed by the ''Thawte Code Signing CA'' intermediate certificate which is chained to the ''Thawte Premium Server CA'' root certificate. You need to trust this certificate Chain to be able to use the applet.

Note that there is currently [[a bug|http://trac.tiddlywiki.org/ticket/172]] that prevents ~TiddlySaver from working if you have specified a backup directory in AdvancedOptions and the directory doesn't exist.

Thanks to Andrew Gregory for the original TiddlySaver code, and ~BidiX for arranging all the certificate magic.
|''URL:''|http://tiddlystyles.com/|
|''URL:''|http://www.tiddlytools.com/|
|''Description:''|Small Tools for Big Ideas!|
|''Author:''|EricShulman|
~TiddlyWiki is a complete [[wiki|WikiWikiWeb]] in a single HTML file. It contains the entire text of the wiki, and all the ~JavaScript, CSS and HTML goodness to be able to display it, and let you edit it or search it - without needing a server. Although, having said that, there are some fine ServerSide adaptations out there.

~TiddlyWiki is published under an OpenSourceLicense and maintained by a busy [[Community|Help and Support]] of independent developers.
Before TiddlyWiki supported [[Plugins]], several independent developers created their own extended adaptations to support new features. These can be considered forks of the original core code, and won't necessarily be based on the latest version. For that reason, the trend more recently has been for developers to release new features as [[Plugins]] that can be readily mixed and matched and upgraded to the latest version.

Here's a list of known adaptations - note that many of these are quite old, and the links may be dead (all working as at 10 July 2008):
* Bram Chen's [[PrinceTiddlyWiki|http://ptw.sourceforge.net/]]
* Josh Goebel's [[ServerSideWiki|http://www.serversidewiki.com]]
* Masaki Yatsu's [[LesserWiki|http://lesserwiki.org/]]
* David Harper's [[BloTid|http://www.spacecoastweb.net/BloTid/Tiddly/]]
* Jacques Turbé's [[TidliPo|http://avm.free.fr/tidlipo.html]] (in French)
* Joe Raii's [[pytw|http://www.cs.utexas.edu/~joeraii/pytw/]] and [[Siglet|http://www.cs.utexas.edu/~joeraii/siglet/]]
* Jároli József's [[MagyarTiddlyWiki|http://innen.hu/MagyarTiddlyWiki]] (in Hungarian)
* Yoshimov's [[EncryptedTiddlyWiki|http://wiki.yoshimov.com/?page=EncryptedTiddlyWiki]] (in Japanese)
* Tim Morgan's [[ZiddlyWiki based on Zope|http://ziddlywiki.org/]]
* Steve Rumsby's [[YetAnotherTiddlyWikiAdaptation|http://www.rumsby.org/yatwa/]]
* Phono Hawk's [[PerlTiddlyWiki|http://ccm.sherry.jp/tiddly/]]
* Nathan Bower's [[GTDTiddlyWiki|http://shared.snapgrid.com/gtd_tiddlywiki.html]] (also see GTDTiddlyWiki)
* Dan Phiffer's [[TiddlyWikiRemote|http://phiffer.org/tiddly/]]
* Jonny ~LeRoy's [[TiddlyTagWiki|http://www.digitaldimsum.co.uk/tiddlywiki/]]
* Jody Foo's [[TagglyWiki|http://informationality.com/tagglywiki/tagglywiki.html]]
* Christian Hauck's [[CompleXimple InDeed|http://www.christianhauck.net/html/14300.html]]
* Alan Hecht's [[QwikiWeb|http://snipurl.com/qwikiweb]]
* Tim Cuthbertson and Matt Giuca's [[TiddlyWikiCSS|http://codestar.lidonet.net/misc/tiddlywikicss.html]] (and Peter Lazarev's [[further improvements|http://petka.webhop.net/#NiceTiddlyWiki]])
* Patrick Curry and Gabriel Jeffrey's [[PhpTiddlyWiki|http://www.patrickcurry.com/tiddly/]]
* Henrik Aasted Sorensen's [[server side adaptation|http://aasted.org/wiki]]
* [[KamiWiki|http://rakusai.org/kamiwiki/]]
* Kevem Buangga's [[TiddlyWikiClone|http://www.kevembuangga.com/hwk/hailiwiki.htm]]
* Andre Nho's [[StickWiki|http://stickwiki.sourceforge.net/]]
* [[MessageVault|http://www.kokogiak.com/gedankengang/2007/03/introducing-message-vault.html]], a personal password store built on some ~TiddlyWiki technology
There's also some TiddlyWikiTools that extend ~TiddlyWiki.
~TiddlyWiki has been used as the basis of a few experiments in hypertext fiction. 
*"[[Bibliotheca Caelestis. Tiddlywikiroman|http://bc.etkbooks.com/opac/]]" from Hartmut Abendschein
*"[[Die, Vampire! Die!|http://www.davidvanwert.com/wiki/dievampiredie.html]]" from David Van Wert
*"[[Rose|http://www.emacswiki.org/alex/rose.html]]" from Alex Schroeder
*"[[Gimcrack'd|http://gimcrackd.com/]]" from Chris Klimas
*"[[Singularity!|http://www.accelerando.org/_static/toughguide.html]]" by Charles Stross
Isao Sonobe's [[TiddlyWikiPod|http://www8.ocn.ne.jp/~sonoisa/TiddlyWikiPod/index.html]] is a nifty utility for Mac OS X that copies the content of a ~TiddlyWiki to an iPod where it can be read, and links followed, using the touch wheel. Isao has also added the ability to link to songs from the ~TiddlyWiki text which enables some interesting applications. At the moment, the instructions apply to the older SecondVersion of ~TiddlyWiki.
Saq Imtiaz and Kalle Alm have just released a release candidate of [[TiddlySnip|http://tiddlysnip.com/]], a Firefox extension that lets you use your ~TiddlyWiki as a scrapbook. Simply select text, right click and choose "~TiddlySnip selection". Next time you open your ~TiddlyWiki file, your snippets will be there, already tagged and organised.

The first add-on tool for ~TiddlyWiki was Isao Sonobe's TiddlyWikiPod that let's you transfer the contents of a ~TiddlyWiki to an iPod (well, not an iPod shuffle).

Markus Koch has [[released a script|http://bloggern.de/cms/wiki.php]] that allows Postnuke to publish content in ~TiddlyWiki format (Postnuke is a popular full-blown open source content management system).

The 33ad blog features a neat tool by Jeremy Kelley to [[create a calendar in ~TiddlyWiki table format|http://33ad.org/tools/gtdtwcal.php]].

See TiddlyBookmarklets for some ideas about using bookmarklets to extend and hack ~TiddlyWiki.
The {{{<<today>>}}} macro inserts the current date and time into a tiddler. It's updated each time the tiddler is redisplayed.

It can optionally take a DateFormatString to determine the way that the date is displayed:

{{{
<<today>>
<<today>>
}}}

Results in:
<<today>>
<<today>>
If your press the command key on the Mac or the control key on the PC while clicking on a link to a tiddler, the tiddler will be opened as usual if it isn't already open, but if //is// open, it will be closed. It makes a handy way to review links without having to move the mouse around to re-close tiddlers.

You can make this behaviour the default under AdvancedOptions (you can override back to the normal behaviour with the same command/control key).
A row of ToolbarButtons appears to the right of a tiddler title when the mouse is hovered over it. The buttons are:
* ''close'' - close the current tiddler
* ''edit'' - edit the current tiddler
* ''permalink'' - puts a link direct to the current tiddler into the address bar
* ''references'' - displays all the tiddlers that link to the current tiddler
* ''done'' - save changes to a tiddler being editted
* ''cancel'' - cancel changes to a tiddler being editted
* ''delete'' - delete the current tiddler
The ToolbarMacro is used in the TiddlerTemplateMechanism to define the toolbar that appears when the mouse is hovered over a tiddler. It looks like this:
{{{
<<toolbar closeTiddler -editTiddler +jump>>
}}}
The arguments to the ToolbarMacro is a list of command names, as discussed in the CommandMechanism. The available commands are tagged <<tag commands>>.

You can precede a command name with a "+" to specify a default command that is automatically chosen when a tiddler is double-clicked, or the ctrl-Enter key combination pressed. Similarly, precede it with "-" to specify a command to be chosen when the Escape key is pressed.
[[UnaMesa|http://www.unamesa.org/]] is a non-profit organisation that owns and holds the IPR for TiddlyWiki in trust for the public.
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
TiddlyWiki works fine under Internet Explorer on Windows Vista, although you may run into the blocking problem described in ServicePack2Problems.

Under Vista, TiddlyWiki will not save changes correctly if you are viewing the TiddlyWiki file in Vista's file preview pane.
|''URL:''|http://visualtw.ouvaton.org/VisualTW.html|
|''Author:''|Pascal|
In late February 2007 an update to Norton's anti-virus software causes it to falsely identify TiddlyWiki files as containing the "W32.Feebs" virus. This is an incorrect report and should be ignored. See [[this discussion|http://groups.google.com/group/TiddlyWiki/browse_frm/thread/f98da9a720d01ba5/87a96ed9899e05c9?hl=en]] for more details.
TiddlyWiki seems to [[work fine on the Wii browser|http://blog.deuceofalltrades.com/2007/02/wii-browser-meets-microcontent.html]], at least for browsing -- it doesn't appear that you can save or upload changes.
Putting ~TiddlyWiki on a USB stick lets you carry around a self contained notebook that you can update wherever there's a computer, whether it's a Mac, Linux or a PC. 

To be even more independent you can [[install FireFox on the drive|http://www.mozilla.org/support/firefox/tips#oth_usb]] as well!
A wiki (derived from the Hawaiian word for "fast") is a popular way of building collaborative websites. It's based on the two ideas of allowing users to easily edit any page and the use of special formatting to create links between pages. See Wikipedia for [[more details|http://en.wikipedia.org/wiki/Wiki]].

~TiddlyWiki is fundamentally different from a conventional Wiki because it is not based on separate, entire pages of content, but rather items of MicroContent referred to as [[Tiddlers|Tiddler]] that live together on the same page.

Out of the box, ~TiddlyWiki is also different because it doesn't support public editing - or indeed any persistent editing when viewed over the web. However, there are ServerSide editions, TiddlyWikiAdaptations and [[Plugins]] that provide these features in a wide range of different configurations.
A WikiWord is a word composed of a bunch of other words slammed together with each of their first letters capitalised. WikiWord notation in a conventional WikiWikiWeb is used to name individual pages while TiddlyWiki uses WikiWord titles for smaller chunks of MicroContent. Referring to a page with a WikiWord automatically creates a link to it. Clicking on a link jumps to that page or, if it doesn't exist, to an editor to create it. It's also easy to have NonWikiWordLinks, and there's a WikiWordEscape for situations where you don't want a WikiWord to be interpreted as a link.
Sometimes it's handy to be able to write WikiWords without them being recognised as links (for people's names, for instance). You can do this by preceding the WikiWord with a tilde ({{{~}}}). For example, ~JamesBond, ~JavaScript and ~TiddlyWiki
I'm hoping that after using TiddlyWiki for a while a new WritingStyle will emerge that is appropriate for this medium.				Jakob Neilsen wrote an article about [[writing styles|http://www.useit.com/alertbox/980906.html]] for MicroContent back in 1998 that still seems surprisingly relevant.
You just clicked on an example link, which was created by putting the word 'example' in double square brackets. You can now close this tiddler by clicking on the 'close' link above, and return to the guidelines.
Tiddlers tagged {{{systemServer}}} wrap up all the connection details of a particular server so that they can be accessed quickly.

A list of available {{{systemServer}}} tiddlers is presented at the start of the ImportTiddlers macro. Selecting one of them pre-selects the relevant fields in the wizard. After a successful import operation, ImportTiddlers also offers the opportunity to automatically create a {{{systemServer}}} tiddler with the details of the server that was used. {{{systemServer}}} tiddlers are also used by the [[syncing]] command.

Here's an example {{{systemServer}}} tiddler:

<<<
|''Description:''|My example server|
|''Type:''|mediawiki|
|''URL:''|http://www.myexampleserver.org/x/|
|''Workspace:''|Main|
|''~TiddlerFilter:''|[tags[important unpluggable]]|
<<<

The fields are as follows:

|!Field |!Description |!Status |
|Description |Brief description of the server |Optional |
|Type |Type of server connection eg {{{file}}} or {{{mediawiki}}} |Optional - defaults to {{{file}}} |
|URL |Host URL of the server |Mandatory |
|Workspace |Name of the workspace |Optional |
|TiddlerFilter |Specifies which tiddlers are to be imported |Optional |
~TiddlyWiki has now been translated into over 20 languages - see the [[translation page at TiddlyWiki.org|http://trac.tiddlywiki.org/wiki/Translations]] for more details.
(предполагаю, что ~TiddlyWiki вы уже скачали, и прочли про [[основной способ|Как русифицировать?]])
# Откройте здесь запись RuStyle
# Наведите на нее курсор мыши, в появившемся меню выберите "редактировать"
# Когда запись откроется для редактирования, выделите все ее содержимое (Ctrl + A)
# Скопируйте в буфер обмена (Ctrl + C)
# Создайте новую запись (new Tiddler) в //своей инсталляции ~TiddlyWiki//
#  Перейдите в режим редактирования, и вставьте в нее ранее скопированное.
# Назовите запись RuStyle, добавьте метку (tag) systemConfig
# Сохраните запись, сохраните изменения, перезагрузите ~TiddlyWiki
Для быстрого начала работы (составления Дракон-схем) необходимо:
# Запустить файл DRAKON.exe
# Меню ПРАВКА - > "Разрешить редактировать" - галочка - Должна быть
# Меню ФАЙЛ -> Новый лист... -> Дать имя создаваемому файлу
# Навести курсор на поле редактирования, нажать правую клавишу мыши и вставить схему СИЛУЭТ (Лист:Вставить схему силуэт)
# Между блоками "ветка 4" и "Адрес 5" 
* Выбрать маленький белый квадратик со знаком вопроса (т.н. "точка ввода" или "валентная точка")
* выбрать его (чтобы он стал синим)
* Нажать правую клавишу мыши и  выбрать блок "Точка ввода:Вставить" - > "Действие"
* В точке ввода появится блок "действие 12"
* Выбрать блок, Внизу окна появляется поле редактирования в котором меняем надпись "Действие 12" на "Выполнить операцию ..."

Задание переходов по веткам дракон схемы:
# Выбрать блок ("Икону", "Элемент") "Адрес 15"
# Нажать правую клавишу мыши, выбрать "Операция" - > "Адрес: выбрать ветку", 
# Выбрать "Ветку 10"
# Переименовать заголовок "ветка 10" - на "Завершить работу"
 
<<tagging Версии>>
----
^^[[открыть отдельно|Версии русификатора]]^^
Вопросы и ответы  об интегрированной среде DRAKON

http://forum.oberoncore.ru/viewtopic.php?p=22669#p22669

!!! 1. Для чего нужен язык ГНОМ, что он позволяет сделать?.
У В.Д. Паронжанова, книга "Почему мудрец похож на обезьяну", глава "Учитесь делать графические конспекты". 
Для текстовых описаний (конспектов) предложены языки Гном, Молния, Граф. 
В Гноме одна конструкция - запоминатель, она состоит из икон: указатель и мнемоблок.
Запоминатель концентрирует внимание на определении, наименование определяемого предмета помещается в указатель, смысловое значение помещается в мнемоблок.
Запоминатели имеются во всех книгах В.Д.П. и воспринимаются как очевидное. 

!!! 2. Главное, зачем, работать со схемой ГНОМ?
Каких именно "декларативных знаний"?
Схема Гном служит для формирования текстовых описаний, подобно страницы книги, не процедурных, не алгоритмических. 

В схеме Гном есть запоминатель и иконы: текст в рамке, текст без рамки, комментарий тоже что в Драконе, сборка текста. В схеме они размещаются сверху вниз без соединительных линий, схему можно поместить в рамку. 

Икона сборка текста служит для формирования по отдельному списку общего текста из текстов, которые находятся в других иконах. Такой текст можно использовать как текст программного кода в применяемых языках программирования. В сборку текста можно включить и другой список, т.е. для схем примитив, силуэт формировать текст процедуры или функции, а для листа текст модуля. В схему гном следует помещать программный код модуля, который не вошел в процедуры, т.е. в схемы примитив и силуэт. 

!!! 3. Замечание по программе: иногда не запускается нормально и не дает создать лист с ошибкой "недостаточно памяти". Иногда справка не открывается, несмотря на неоднократный вызов соответствующего пункта меню.
Программирование и отладка выполняются на ноутбуке, оперативная память 512Мб, Windows XP, формируется в цвете графическое изображение 3000*3000 пикселей. В программе нет настроек на наличие ресурсов. Проблем нет, Ваши проблемы, вероятно, связаны с компьютером, проверьте работу на другом компьютере, но при наличии проблем сообщайте, 
Справку можно просматривать и вне программы.
Кстати, работать можно с флэшки, т.е. дома и еще где-нибудь, используется только каталог программы. 

!!! 4. Можно поподробнее? Что, формат drt понимается каким-то распространенным графическим редактором? Каким?

Говорилось о выводе листа в графический файл .png. 
Файл ...png прочитайте редактором Paint.
Можете редактировать: убрать ненужное, добавить логотип фирмы, красивый заголовок, угловой штамп для подписей.
Подготовить для печати, т.е. установить параметры страницы: формат бумаги, размер полей = 0, выбрать ориентацию, раскладку картинки на N x M страницах, центрировать, подогнать или масштабировать.
Предварительно просмотреть. Напечатать. Обрезать поля кромки (подумайте часть или все), склеить скотчем или клеем. 
Повесить на стену, провести презентацию.
!ДРОН - генератор кода на Активном Обероне по Дракон-схемам.

(т.е. транслятор ДРАКОН-схем в программный код на Активном Обероне)

ВНИМАНИЕ!! ДРОН D2O - из-за того что Дракон-редактор активно развивается и его формат файлов часто меняется работает только со старой версией Дракон-Редактора (которая прилагается)!!

Сайт проекта http://sage.com.ua/ru.shtml?e6l0

[[ДРОН. Быстрый старт]]

[[ДРОН. О проекте.]]
Для быстрого начала работы (трансляции ДРАКОН-схем в программный код на Активном Обероне) необходимо:

1. Создать ДРАКОН-документ с набором ДРАКОН-схем.

Некоторые общие замечания по составлению схемы:

* результатом трансляции одного ДРАКОН-документа будет одна единица компиляции (модуль) в терминах языка Активный Оберон (сообщение о языке Активный Оберон http://bluebottle.ethz.ch/languagereport/index.html);
* результатом трансляции каждой ДРАКОН-схемы входящей в состав ДРАКОН-документа будет одна процедура. Здесь мы немножко абстрагируемся от особенностей языка. А именно, под процедурами будем также подразумевать и: тело модуля (то что начинается после слова BEGIN)   оформляется как схема в заголовок которой вписывается слово BEGIN,  методы объектов   заголовки схем относящихся к методам объектов необходимо префиксовать именами этих объектов . т.е. Object.Proc1, Object.BEGIN. Как видите, к телу объекта применяются оба соглашения одновременно;
* необходимо заполнить декларативную часть модуля (секции IMPORT, CONST, TYPE и VAR). Для этого в ДРАКОН-документ нужно вставить по одному блоку "комметнарий" для определения каждой из секций и в первой строке вписать соответствующее слово IMPORT, CONST, TYPE или VAR. Если первая строка будет начинаться с "(*" такой блок будет считаться глобальным блоком комментария относящегося ко всему модулю (здесь можно указать назначение модуля, автора модуля и т.д.). В TYPE секции даются объявления типов и лишь "пустышки" деклараций объектов (без методов и тел);
* список параметров и локальных переменных процедуры записывается в блоке примечания к заголовку. В блок помещается всё начиная со скобки, следующей за именем процедуры;
* топология схем ограничена потоком управления строго сверху-вниз и слева-направо. И как исключение, естественным образом организованные, простые циклы.

2. Запустить генератор кода D2O.exe, указав в качестве первого и единственного параметра командной строки имя файла ДРАКОН-документа.
!!ДРОН

В.Д. Паронджанов в своей книге "Как улучшить работу ума" [1] указывает на возможность трансляции ДРАКОН-схем непосредственно в программный код на языке высокого уровня. При этом управляющие конструкции целевого языка полностью отбрасываются заменяясь конструкциями языка ДРАКОН. Таким образом получается новый язык, являющийся подмножеством целевого языка. Так упоминаются языки ДРАКОН-Си, ДРАКОН-Паскаль. 

8 апреля 2008 г. Александр Ильин на форуме [3] предложил название ДРОН для возможного языка ДРАКОН-Оберон. 

D2O (Deuterium Oxide) — ДРОН => Active Oberon транслятор.
Задавшись целью реализации языка ДРОН я написал письмо Геннадию Тышову с просьбой открыть формат ДРАКОН-схем используемый в его редакторе. На что в ответ он выслал мне весь исходный код :) 

Для начала я решил создать ДРАКОН-схему которую можно было-бы полностью транслировать в модуль на Active Oberon. 

И очень быстро я убедился что при соответствующем оформлении ДРАКОН-схемы задача становится вполне реализуемой. 

Основные особенности "оформления" конечно касаются декларативной части, отсутствующей в ДРАКОНе. 

На первых порах пришлось "приспособить" под декларативную часть блок "комментарий", с разделением соответствующих секций, собственно: комментариев, импорта, констант, типов и переменных. принадлежность той или иной секции определяется первым считанным из блока элементом, соответственно (*, IMPORT, CONST, TYPE и VAR. 

[img[ДРОН. Рис. 1. Объявление переменных в комментарии|СправкаПоДраконСхемам.Рисунки/ДРОН. Рис. 1. Комментарии.png]]

Дело в том что, содержимое некоторых секций будет необходимо не только в качестве справочной информации, а должно быть доступно и для модификации на стадии генерации кода. 

Возможно более удачное решение - оформлять декларативную часть в табличной форме. 

В TYPE секции даются объявления типов и "пустышек" деклараций объектов (без методов и тел). 

Каждая отдельная схема рассматривается как эквивалент процедуры на языке Оберон. При этом применительно к языку Оберон можно рассматривать в качестве процедур ещё и тела модуля и объектов (после слова BEGIN), а ещё необходимо как-то различать процедуры модуля от процедур-методов объектов. 

Было решено:

Тело модуля оформлять в виде схемы, в заголовок которой вписывается слово BEGIN 
Префиксовать заголовки схем относящихся к методам объектов именами этих объектов. т.е. Object.Proc1, Object.BEGIN. Как видите, тело объекта тоже не забыли 
Все остальные схемы соответствуют процедурам модуля 
Вот какая получилась схема: 

[img[ДРОН. Рис. 2. ДРОН-схема приложения UDPChatServer|СправкаПоДраконСхемам.Рисунки/ДРОН. Рис. 2. Программа.png]]

Топология схем ограничена потоком управления строго сверху-вниз и слева-направо. И как исключение, естественным образом организованные, простые циклы. На мой взгляд мощь схемы "силуэт" сводит такое ограничение на нет. 

[img[ДРОН. Рис. 3. Простые циклы|СправкаПоДраконСхемам.Рисунки/ДРОН. Рис. 3. Дракон схема.png]]

В результате получено консольное приложение, позволяющее транслировать ДРАКОН-схему (фактически, схему на языке ДРОН) в модуль на языке Active Oberon. 

ДРОН-транслятор носит скромное название D2O т.е. Deuterium Oxide или Тяжёлая Вода по русски :) 

ДРОН-транслятор и тестовые схемы на языке ДРОН прилагаются. 

13 июля 2008 г. Геннадий Тышов опубликовал более свежую версию редактора [4], однако тестовые схемы прилагающиеся к существующей на сегодняшний день версии D2O имеют несовместимый формат. Версия редактора представленная здесь на сайте гарантированно позволяет открыть и редактировать прилагающиеся схемы. Вопросы обратной совместиости форматов или открытия нового формата в настоящий момент обсуждаются с автором редактора. 

!! Дальнейшее развитие идеи
Проработки требует организация декларативной части модуля. Как вариант — табличная форма:

[img[ДРОН. Рис. 4. Табличная форма организации декларативной части модуля|СправкаПоДраконСхемам.Рисунки/ДРОН. Рис. 4. Таблица.png]]
----
Ссылки:
[1] http://www.transhumanism-russia.ru/documents/books/drakon/kak_uluchsit_rabotu_uma_Word.rar. 

[2] http://forum.oberoncore.ru/viewtopic.php?p=14323#p14323. 

[3] http://forum.oberoncore.ru/viewtopic.php?p=14373#p14373. 

[4] http://forum.oberoncore.ru/viewtopic.php?f=62&t=1075. 
-----
Смотри также:
[[ДРОН. Быстрый старт]]


Для обозначения блок-схем, построенных по правилам языка ДРАКОН, используется термин “дракон-схемы”.

!!ПРЕИМУЩЕСТВА ДРАКОН-СХЕМ
Чем же отличаются дракон-схемы от блок-схем? Блок-схемы не обеспечивают автоматическое преобразование алгоритма в машинный код. Дракон-схемы, напротив, пригодны для формализованной записи, автоматического получения кода и исполнения его на компьютере. Однако более важным является второе (когнитивное) отличие. Хотя блок-схемы порою действительно улучшают понимаемость программ, однако это происходит не всегда, причем степень улучшения невелика. Кроме того, есть немало случаев, когда неудачно выполнен-ные блок-схемы запутывают дело и затрудняют понимание. В отличие от них дракон-схемы удовлетворяют критерию ''сверхвысокой понимаемости''.
Благодаря использованию специальных формальных и неформальных когнитивных приемов дракон-схемы дают возможность изобразить решение любой, сколь угодно сложной технологической проблемы в предельно ясной, наглядной и доходчивой форме, которая позволяет значительно сократить интеллектуальные усилия персонала, необходимые для зрительного восприятия, понимания, верификации и безошибочного решения проблем.
Самый простой и правильный путь:

''Установить ~TiddlyWiki''
# Cкачать файл ~TiddlyWiki с [[официального сайта|http://www.tiddlywiki.com/ ]] (обратите внимание -- чтобы все работало, нужно скачивать файл, щелкнув правой клавишей мыши по ссылка (на Маке -- Ctrl+мышь) и выбрать из появившегося меню "save target as"
# Открыть файл в совместимом браузере (Explorer я не пробовал, и вам не советую. Firefox, Opera, Safari (последние выпуски), Camino)
# Убедится, что все работает, изменения сохраняются и пр.
''Собственно, русифицировать''
# Нажать ссылку "options" в правом меню.
# В выехавшей панели нажать ~ImportTiddlers
# В панели импорта ввести в верхнее поле адрес этой странички в интернете (см. в адресной строке браузера)
# Нажать ''fetch''
# Через какое-то время вы увидите список всех записей моей инсталляции. Выбитайте из списка RuStyle, поставив напротив нее галку, жмите кнопку, дождитесь сообщения об удачной загрузке.
# Сохраните изменения и перезагрузите wiki (Shift+reload)
# Интерфейс русифицировался!
# Теперь можно импортировать записи из вашего старого файла, если он у вас был.
Если вы нашли ошибку, готовы предложить улучшение -- с точки зрения языка или программирования, связывайтесь со мной.
* http://www.glebsite.ru/all/about/ (вся контактная информация)
----
^^[[открыть отдельно|Как связаться?]]^^
Вы можете самостоятельно устанавливать новые макросы (подстановка текста), плагины (расширение функциональности), стили и переводы на другие языки.
!!!Как установить плагин, макрос или перевод
№ Скопируйте в буфер обмена текст плагина (код программы).
№ Создайте новую записку и дайте ей соответствующее имя.
№ Вставьте текст в тело записки.
№ Пометьте записку тэгом ''systemConfig''.
№ Сохраните записку.
№ Сохраните TiddlyWiki.
№ Нажмите в браузере кнопку ''Обновить''.

Все записки, помеченные тэгом ''systemConfig'' TiddlyWiki пытается интерпретировать как код программы и выполнить при загрузке. Таким образом, чтобы отключить расширение, не удаляя его, достаточно снять пометку тэгом ''systemConfig''.

!!!Как установить стиль
Повторите шаги, относящиеся к установке расширений, но только
* назовите записку StyleSheet и никак иначе;
* не помечайте ее тэгом ''systemConfig''.

Соответственно, чтобы отключить, но не удалять стиль, нужно переименовать записку.

----
Где искать расширения - см. [[Ссылки]]
!!Методология GTD
В тайм-менеджменте приоритеты обычно играют центральную роль. Напротив, Аллен предлагает 2 других элемента — контроль и виденье. Для их реализации Аллен использует три базовых модели:

# Управление рабочим процессом 
# 6-ти уровневая модель обзора работы 
# Естественный метод планирования 

!!! Управление рабочим процессом 
Первая главная модель — управление рабочим процессом, используется для того, чтобы взять под контроль все задачи и поручения. Управление рабочим процессом состоит из пяти фаз (подробнее — см. в разделе Принципы):

# Сбор 
# Обработка 
# Организация 
# Обзор 
# Действия 

!!! 6-ти уровневая модель обзора работы 
Аллен использует аналогию «высоты полёта», для того, чтобы проиллюстрировать его вторую главную модель, шестиуровневую модель обзора работы, для виденья перспективы задач и поручений. По восходящей линии:

# Текущие дела 
# Текущие проекты 
# Круг обязанностей 
# Ближайшие годы (1-2 года) 
# Пятилетняя перспектива (3-5 лет) 
# Жизнь 

Поднимаясь на высоту птичьего полёта, каждый может рассмотреть «общую картину» своих дел.

Аллен рекомендует еженедельный обзор по различным уровням. Виденье, полученное из этих обзоров, позволяет управлять личными приоритетами, которые, в свою очередь, определяют приоритет того, нужно ли выполнять и когда выполнять конкретные задачи и поручения, собранные во время процесса управления рабочим процессом. Во время еженедельного обзора человек определяет контекст для задач и размещает их в соответствующих списках. Например, список необходимых телефонных звонков или поручения, которые нужно выполнить в Центре. Контекстные списки могут быть определены по имеющимся условиям или по персонам\группам, с которыми нужно что-то обсудить или сделать.

!!! Естественный метод планирования

Аллен подчеркивает, что первых двух моделей достаточно для получения контроля и виденья в большинстве задач и проектов. Однако, в некоторых случаях требуется более глубокое обдумывание и размышление. Для этого используется третья главная модель — естественный метод планирования. В то время как в модели управления рабочим процессом делается «горизонтальная фокусировка» на выполнении индивидуальных задач, в естественном методе планирования делается «вертикальная фокусировка» на планировании проектов и продумывании тем. Модель планирования состоит из 5 стадий:

# Определение цели и принципов 
# Виденье желаемых результатов 
# Мозговой штурм 
# Организация 
# Определение следующего конкретного действия 

GTD основан на облегчении процессов хранения, отслеживания и использования всей информации, связанной с вещами, которые должны быть сделаны. Аллен предполагает, что многие из провалов в памяти, с которыми мы сталкиваемся, были вызваны недостаточным 'входным' планированием (то есть, для любого проекта мы должны описать то, что должно быть достигнуто и какие конкретные действия необходимы для того, чтобы достигнуть этого). Важно продумать это заранее, создав последовательность действий, которую можно выполнить без возвращения к планам. Аллен утверждает, что «система напоминания» нашего разума неэффективна и редко напоминает нам о том, что мы должны и можем сделать в данный момент и в данном месте. Следовательно, «следующие конкретные действия», связанные с данным контекстом, действуют как внешняя поддержка, которая гарантирует, что мы делаем себе правильные напоминания в нужное время.

Краткое описание GTD из книги Аллена, Готов ко всему (Ready for Anything):

Вытащите всё из вашей головы. Примите решения о требуемых действиях тогда, когда появляется дело — а не, тогда, когда оно требует аварийного завершения. Организуйте напоминания по своим проектам и следующим действиям по ним в соответствующих категориях. Поддерживайте свою систему, пополняйте её и делайте её обзор так часто, как требуется для того, чтобы доверять своей интуиции, говорящей о том, что вы делаете (и не делаете) в любое время.
Здесь коротко описаны расширения, включенные в этот файл.

!!!OpenAll
Позволяет открывать записки, помеченные определенным тэгом. В отличие от встроенного {{{tag}}} может предварительно закрывать все открытые записи, позволяет задавать надпись для кнопки, устанавливать лимит отображения (не более N записок) и изменять порядок сортировки на обратный.

Формат {{{<<openAll <тэг> [параметры] >>}}}

Тэг обязателен, параметры опциональны и могут следовать в любом порядке.
|!Параметр|!Описание|
|close~AllFirst|Предварительно закрывает все открытые записки|
|title:Текст|Надпись на кнопке|
|limit:#| Замените # на число записок, которое вы хотите отобразить (по умолчанию 10000)|
|reversOrder|Сортировать по заголовкам в обратном порядке|

Пример: {{{<<openAll systemConfig closeAllFirst "title:Системные настройки">>}}}
<<openAll systemConfig closeAllFirst "title:Системные настройки">>

!!!PreView
Редактирование с одновременным просмотром результата. Понятно, тормозит, но иногда очень полезно. Включить можно в опциях.

!!!ToolBar
Добавляет к каждой записке кнопки:
* закрыть другие - все записки, кроме текущей закрываются
* новая - создает новую записку с тем же набором тэгов, что и у текущей
* свернуть - позволяет свернуть записку до заголовка и развернуть обратно
* дубликат - создает копию записки

!!!TagCloud
"Облако тэгов", отображает все тэги, причем размер шрифта каждого тэга зависит от того, как много записок помечены этим тэгом.
Формат: {{{<<tagCloud>>}}}

----
//Примечание: информацию об авторстве см. в тексте расширений.//
Прошу не обвинять в поклонении перед Западом, я просто оставил прилагавшийся к плагину файл, это все же просто демо. Ну, перевел кое-что.
!!!!Обычные напоминания, день месяца каждый год.
*<<reminder month:1 day:7 title:"Cтарый Новый Год" >>
*<<reminder month:2 day:2 title:"День Сурка ;)" >>

!!!!Напоминания со смещением (...день недели месяца)
*Третий понедельник февраля
**<<reminder month:2 day:15 offsetdayofweek:1 title:"Американский День Президента">>
*Второе воскресенье мая
**<<reminder month:2 day:23 offsetdayofweek:0 title:"23 Февраля">>
**<<reminder month:3 day:8 offsetdayofweek:0 title:"8 Марта">>
**<<reminder month:4 day:12 offsetdayofweek:0 title:"12 марта - День Космонавтики">>
*Последний понедельник мая (обратите внимание -- offsetdayofweek отрицательное число, что означает обратный отсчет)
**<<reminder month:5 day:9 offsetdayofweek:-1 title:"День Победы!">>

!!!И просто так
*<<reminder month:4 day:1 title:"День Юмора" >>
*<<reminder month:10 day:31 title:"Хэллоуин" >>
*<<reminder month:1 day:1 title:"Новый Год" >>

!!!Экзамены и Отпуск
*<<reminder month:4 day:10 title:"Начало Отпуска" >>
*<<reminder month:5 day:17 title:"Конец Отпуска" >>
*<<reminder month:5 day:30 title:"Мой ДР" >>
* [[О программе]]
* [[Быстрый старт]]
* [[Язык Дракон]]
* [[Язык Гном]]
* [[Помощь по Дракону]]
* [[Воросы и Ответы]]
!!!Timeline {{{<<timeline>>}}}
Выводит записи в хронологическом порядке.

!!!Сегодняшняя дата: {{{<<today>>}}}
Результат: <<today>>

!!!Записки, помеченные тэгом: {{{<<tag systemConfig>>}}}
Результат: <<tag systemConfig>>

!!!Новая дневниковая записка: {{{<<newJournal "DD MMM YYYY, hh:mm">>}}}
Результат: <<newJournal "DD MMM YYYY, hh:mm">>
*DDD - день недели
*DD - число, 0DD - добавлять лидирующий ноль
*MMM - название месяца
*MM - номер месяца, 0MM - добавлять лидирующий ноль
*YYYY - год (четыре цифры), YY - две цифры
*hh - часы
*mm - минуты
*ss - секунды

!!!Включение записки: {{{<<tiddler MainMenu>>}}}
Вставляет текст другой записки в эту. ++Внимание!++ На данный момент нет защиты от бесконечных циклов в случае включений "по замкнутому кругу".


<<tiddler MainMenu>>


!!!Слайдер: {{{<<slider chkTestSlider OptionsPanel Настройки "То же, что и 'опции'">>}}}
Результат: <<slider chkTestSlider OptionsPanel Настройки "То же, что и 'опции'">>
Параметры по порядку:
№ имя "cookie" для сохранения состояния слайдера
№ имя заметки, содержащей текст слайдер (это может быть любая заметка)
№ заголовок ссылки
№ всплывающая подсказка

!!!Вкладки 
{{{
<<tabs txtFavourite
Меню "Главное меню" MainMenu
Опции "Опции" SideBarOptions
>>
}}}
Результат:
<<tabs txtFavourite
Меню "Главное меню" MainMenu
Опции "Опции" SideBarOptions
>>
----
//Конечно, здесь описаны не все существующие макросы.//
Финальный выпуск от 09.01.2009
!Интегрированная среда DRAKON языков ДРАКОН и ГНОМ
!!О программе

* [[ДРАКОН]] – Дружественный Русский Алгоритмический язык, Который Обеспечивает Наглядность.
* [[ГНОМ|Язык Гном]] – Графический Наглядный Очень Маленький язык - декларативный язык.
* Автор языков - к.т.н. Владимир Даниелович Паронджанов, из http://www.npcap.ru/ .
* Смотрите - http://parondzhanov.livejournal.com/ ,  http://upr.1september.ru/1999/upr36.htm .
* Язык ДРАКОН для XXI-го века, родился и вышел из космической колыбели БУРАНа (полет 15 ноября 1988г.).
* О создании программного обеспечения БУРАНа - http://www.buran.ru/htm/su.htm .
* История создания языка ДРАКОН - http://www.transhumanism-russia.ru/content/view/331/61/ .
* Книги: "Занимательная информатика" (1998, 2000, 2007) для младшего и среднего школьного возраста,
* "Как улучшить работу ума. Алгоритмы без программистов - это очень просто!" (1998, 2001) - http://www.arbinada.com/main/node/408/ ,
* "Почему мудрец похож на обезьяну" (2007).
* Стандарты: ГОСТ 19.701-90, ISO 5807–85 Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.
* Форум с участием В.Д. Паронджанова и Wiki на http://www.oberoncore.ru/ .

!!!Паронджанов В.Д. Цитаты из различных источников.
<<<
Опыт Бурана показывает, что вопрос об интеллектуальном взаимопонимании специалистов зачастую играет ключевую, основополагающую роль и во многом определяет успех дела.

!!!!! Язык в равной степени рассчитан на четыре категории лиц:

1. на людей, совершенно не знакомых (или слабо знакомых) с программированием и вычислительной техникой: механиков, электриков, комплексников, прибористов, испытателей, физиков, химиков, геологов, биологов, медиков, экономистов, юристов, психологов и т. д.;

2. на профессиональных программистов, математиков и разработчиков вычислительной техники, в том числе на специалистов по операционным системам, системному и прикладному программированию, а также  микропрограммированию (для персональных, универсальных, управляющих и бортовых компьютеров);

3. на школьников и студентов;

4. на руководителей многих уровней, желающих за минимальное время уяснить суть сложных проблем.

!!!!! При создании Дракона были предъявлены необычные для программистов, математиков и «технарей» гуманитарные требования:

1. Улучшить работу человеческого ума.

2. Предложить эффективные средства для описания структуры человеческой деятельности.

3. Предоставить человеку такие языковые средства, которые резко упрощают восприятие сложных процедурных проблем, общение с коллегами, делают непонятное понятным и за счет этого буквально заставляют человека мыслить отчетливо, глубоко и продуктивно. В этих условиях вероятность заблуждений, просчетов и ошибок неизбежно падает, а производительность растет.

4. Радикально облегчить межотраслевое и междисциплинарное общение между представителями разных организаций, ведомств, отделов, лабораторий, научных школ и профессий.

5. Устранить или уменьшить барьеры взаимного непонимания между работниками различных специальностей (врачами и физиками, математиками и конструкторами, биологами и экономистами и т. д.), а также программистами и теми, у кого аллергия к любому программированию.

6. Добиться кардинального улучшения качества программного обеспечения по критерию «понимаемость алгоритмов и программ».

!!!!!! Зачем нужен Дракон-редактор?

Разумеется, в случае крайней нужды дракон - схему можно нарисовать и вручную. Однако это не лучший способ. Гораздо удобнее воспользоваться специальной программой, которая называется "ДРАКОН - редактор". Если же нужно создать ДРАКОН - программу, ручное рисование вообще исключается. Без ДРАКОН - редактора ввести ДРАКОН - программу в компьютер невозможно.
<<<
http://forum.oberoncore.ru/viewtopic.php?p=13413#p13413   24 Февраля 2008

<<<
6.Моя книга — это обращение к творческим умам, призыв к энтузиастам. Ребята! Если вам нравится идея Дракона, создайте на его основе хороший язык. (т.е. Дракон-редактор, уточнение Тышова)

7. Мы в ракетной технике на основе Дракона сделали такой язык, какой нужен нам. Но вам он не годится. Так что создайте другой, удобный для вас.
<<<
http://forum.oberoncore.ru/viewtopic.php?p=15870#p15870   02 Июня 2008
<<<
НЕДОСТАТОК ПОЗИЦИИ АКАДЕМИКА ЕРШОВА

Ершов смотрел на проблему по-крупному, порою не различая деталей (в ту пору это было вполне извинительно). Однако есть деталь, которую следует признать важной. Это различие между ПРОГРАММИРОВАНИЕМ И АЛГОРИТМИЗАЦИЕЙ.

Моя мысль состоит в следующем.

1. Обучение программированию является важной задачей. Но эта задача касается сравнительно небольшого числа людей. Обучение программированию не может и не должно быть массовым.

2. Что касается алгоритмизации (понимаемой, в частности, как формализация собственных процедурных знаний), то эта задача может и должна быть предметом массового обучения.

АЛГОРИТМИЗАЦИЯ — ВТОРАЯ ГРАМОТНОСТЬ?

Развивая идеи академика Ершова, учитывая его ошибки и реалии сегодняшнего дня, можно сделать следующие замечания:

• Массовое обучение программированию невозможно и не нужно по двум причинам. Во-первых, оно неимоверно трудно. Во-вторых, оно дает знания, которые большинству просто не нужны.

• Массовое обучение алгоритмизации, наоборот, полезно и необходимо.

• В обществе знаний во многих случаях возникает острая необходимость формализовать собственные процедурные профессиональные знания специалистов. Такое умение должно стать частью их профессиональной культуры.

• Алгоритмы пригодны для описания человеческой деятельности (работы), которая состоит из действий.

В чем преимущества такого подхода? Они очевидны. Деятельность — это работа. Как известно, все люди работают. Значит, работу каждого человека, можно описать в виде алгоритма (исключения не в счет). Такое умение (умение описать сложную работу в виде алгоритма) во многих случаях оказывается очень полезным. В частности, оно позволяет почти без труда осуществить автоформализацию процедурных профессиональных знаний.
<<<
http://forum.oberoncore.ru/viewtopic.php?p=14425#p14425   09 Апреля 2008
----

Вспомните о детях, которые учились и учатся по книге В.Д. Пароджанова "Занимательная информатика". Книга с 1998 года выдержала 3 издания. Дети ждут Дракон-редактор. Чтобы язык ДРАКОН и Дракон-редактор пришли в школу и высшую школу вместе с языком Компонентный Паскаль, надо рассказать о них на сайте "Информатика-21" http://www.inr.ac.ru/~info21/.


*DRAKON © Тышов Г.Н. 2007-2009.  Предыдущие рабочие наименования программы - DR, DRT.
*DRAKON – интегрированная среда применения языков Дракон и Гном.
*DRAKON – это программа для алгоритмизации решений ваших проблем.
*DRAKON – это программа для интегрирования решения ваших проблем со средой вашей деятельности.
*DRAKON – это текстовая информационная база интегрированная с алгоритмами вашей деятельности.

!!!Варианты применения:

*DRAKON.exe – Технология  ГРАФИТ, т.е. сочетание ГРАФики И Текста. Для организаций обеспечивается взаимодействие подразделений. Обеспечивается полное использование возможностей интегрированной среды. 
*DRAKONU.exe – Учеба. Для школы, высшей школы и самообразования. В объеме книги "Занимательная информатика".
*DRAKOND.exe – Демонстрация файлов с Дракон - схемами. Для использования Дракон - схем, как средства общения, передачи понятий, знаний, учебника, справочника алгоритмов в разных областях знаний.
*Соответственно переименовать исходный файл DRAKON.exe. Переключить вариант применения можно оперативно: нажать клавишу Shift+U или Shift+D, Shift+G.

!!!По технологии ГРАФИТ, применение разнесено на 3-и уровня.

1. ''Управленческий''.  Для руководства, менеджеров и заказчика. В управленческих примечаниях записываются ссылки на нормативные и распорядительные документы, выписки из них.
2. ''Алгоритмический, прикладной''. Для прикладных специалистов, постановщиков. Формируется алгоритм в виде графических Дракон - схем. В алгоритмических примечаниях записываются описания и пояснения к графическим Дракон - схемам, указания программисту.
3. ''Программный''. Для программиста. Используется при разработке программы для компьютера, создании ДРАКОН - программы. В программных примечаниях записываются фрагменты программного кода на применяемом языке программирования. При сборке производится объединение текста и получение программного кода. Получение исполнительного файла производится в применяемой среде языка программирования.

Примечания всех уровней имеют структуру дерева: к листу, к схеме, к иконе. При сборке, производится в буфере объединение текстов в общий текст, отображение в окне текстов, запись текстового файла, обработка программой указанной в командной строке. Текст  можно корректировать, скопировать и передать во внешний текстовый редактор. Во внешнем текстовом редакторе, текст можно корректировать, форматировать, проверить грамотность, напечатать. Рекомендуется MS Word.

* Графику можно сохранить в графическом файле. Графический файл можно загрузить во внешний графический редактор, корректировать, напечатать. Рекомендуется MS Paint.
* Файл листа с Дракон - схемами (.drt, текстовый) можно обработать в различных целях вашей внешней программой.
* DRAKON.exe – исходный исполнительный файл,
* DRAKON.chm – файл справки к программе, 
* ''СправкаПоДраконСхемам.htm'' - этот файл справки по Дракон-редактору и Дракон-Схемам. выполненый на основе TiddlyWiki
* Программа имеет русскую локализацию, не требуется устанавливать, может использоваться на сменном носителе (флэшке).
* Программирование и отладка выполнены на ПЭВМ с Delphi7, Windows XP, оперативной памятью 512 Мб.
* При использовании в любом виде для коммерческих целей требуется согласование сторон.
* Об авторе DRAKON: 1946г.р., 1С программист 2-й категории, из http://www.spoarktika.ru/ .
* Адрес: для письма и на форуме http://www.oberoncore.ru/.
* Ссылка для скачивания программы и информация об обновлении находятся на форуме http://www.oberoncore.ru/ .
* Сказать последний выпуск программы и справки можно с
http://forum.oberoncore.ru/viewtopic.php?p=22669#p22669.
* О дальнейшем развитии DRAKON: функциональное развитие программы закончено, будут совершенствоваться алгоритмы реализации программы, выполнятся доработки.

Жду и принимаю ваши сообщения о применении, о планах применения, отзывы, советы, предложения, замечания, критику, корректировки.

Благодарю всех за внимание к моему скромному труду и за участие: жену Надежду Сергеевну, Владимира Даниеловича Паронджанова, участников форума на http://www.oberoncore.ru/, коллег из http://www.spoarktika.ru/ .

!!!! Интеграция среды выполнена в следующих направлениях:

* цель - использование алгоритмического языка Дракон;
* инструментальные средства - отображение и редактирование графической и текстовой информации, сборка текстов;
* объекты - графика, текст;
* система хранения графики и текста;
* деятельность - учеба, творчество, алгоритмизация, распространение алгоритмов, проектирование, разработка;
* область применения - образование, хобби, наука, управление, производство, бизнес;
* интеграция с интегрированными средами различных языков программирования путем сборки текста программного кода;
* интеграция с другими системами - экспорт и импорт файлов с открытой структурой.

!!! GTD

Использование Вами интегрированной среды DRAKON зависит от Вашего творческого подхода. 

Популяризатор математики Д. Пойа в конце книги "Как решать задачу" привел следующую интересную обобщенную схему решения задачи:  http://msk.treko.ru/show_article_947

Д. Пойа приводит такую "синтетическую" пословицу: "Ваши лучшие пять друзей: Что, Почему, Где, Когда и Как. Если вам нужен совет, обратитесь к Что, Почему, Где, Когда и Как — и больше ни к кому не обращайтесь. Ничему не верьте, но сомневайтесь только в том, что вызывает сомнение. Найдя первый гриб или сделав первое открытие, осмотритесь вокруг, - они родятся пучками".

Интегрированная среда DRAKON предоставят вам средства работы с друзьями - вопросами: Что, Почему, Где, Когда и Как.

В.Д. Паронджанов ставит вопрос "Как улучшить работу ума”? Обратим внимание на то, что ум такой ограниченный и надо не сойти с него.

Решение находим у Дэвида Аллена в книге “Getting Things Done” (Как разобраться с делами, Как привести дела в порядок) – методика GTD http://www.transhumanism-russia.ru/content/view/74/102/ (http://www.parabox.ru/files/gtd-rus.zip). Интересно, книги “Как улучшить работу ума ” и ”Как разобраться с делами” оказались рядом и единственными в разделе “Учебники” библиотеки сайта российских трансгуманистов. Он предлагает разобрать все дела из корзины для входящих. Разложить по категориям: решение не требуется, для справки, для решения нужно меньше 2-х минут – сразу выполнить, решение дела делегируем другим исполнителям, остальным делам назначаем срок исполнения и соответственно размещаем. После этого в голове хранить ничего не надо, она соответственно не загружена грузом всех проблем и не болит, все рассортировано и размещено. Дэвид Аллен предлагает использовать компьютер и текстовый редактор, другими авторами было предложено использовать различное оборудование, разработаны специализированные программы, смотрите http://ru.wikipedia.org/wiki/Getting_Things_Done.

!!!! Интегрированная среда DRAKON предоставят вам средства:

# хранить сведения о делах, 
# в соответствии с методикой GTD рассортировать по:
* категориям,
* срокам исполнения,
* алгоритмам исполнения
''Who is mister Tiddler ?''
Элементарная единица информации в оригинале называется tiddler. Это разговорное выражение, обозначающее нечто маленькое: рыбешку, ребенка и т. д. В сочетании со словом Tiddly ("модный" и "пьяный") получается красивая, но непереводимая игра слов, к тому же осмысленная: tiddler действительно, маленький, сама вики - модная, а способ навигации иначе как "пьяным" не назвать.
Так как переименовывать продукт в мои планы не входило, а аналогичной русской игры слов не придумалось, я решил не морочить голову пользователю, и перевел это слово как "запись". Слова "записка", "заметка", сужали реальные возможности tiddler'ов, "листок" не вызывало прямых ассоциаций.

''Нет такого слова в русском алфавите''
В русском языке нет слова "тег" (и "тэг" тоже). Зато есть слово "метка", понятное не только жителям ЖЖ. Оно и используется во всем переводе. При помощи ''меток'' записи можно ''пометить''.

''Плагин??''
А вот такого слова в русском языке тоже нет, но в нынешней версии я его оставил, думаю заменить на "модуль", хотя это не вполне по смыслу. Предложения приветствуются.

''Новый дневник''
Ссылка "new journal" при дословном переводе становится еще непонятней, чем в оригинале. Я перевел "датированная запись". Строго говоря, "датированы" все записи в вики,  но эта -- особенно! :) Еще хороший вариант -- "новая дневниковая запись", но уж о-очень канцелярско.

''Календарь''
Даты переведены так, чтобы можно было выводить их по-русски, то есть, не "Октябрь, 12", а "12 октября". Краткие названия месяцев ("Янв", "Фев" и так далее), я изжил как факт, как только представил себе "Июн" с "Июлом", или "Ин" с "Илом". В качестве кратких названий взял римские цифры, что соответствует языковой традиции.
Таким образом, RuStyle предполагает два основных формата полной даты:
* DD MMM YYYY (либо YY) 
* DD.mmm.YYYY
!!Переведено
Все сообщения плагина. Перевод рассчитан на работу с русификатором RuStyle, так как учитывает падежи месяцев. 
!!Добавлено
Добавлено слово "Послезавтра", так как "Через 1 день" это из серии "С вами говорит робот". В оригинале такой сущности не было из-за специфики английского языка. Слова "Сегодня", "Завтра" и "Послезавтра" выделяются полужирным шрифтом, чтобы привлекать внимание в списке. Слово "день" изменяется по правилам русского языка ("1 день", "2 дня" и так далее). Даты автоматически превращаются в ссылки, чтобы прямо из просмотра напоминаний можно было создать запись, посвященному этому дню.

!!Изменено
Форма ввода нового напоминания (которая вызывается макросом <<newReminder>>), чтобы поле "день" было //перед// полем "месяц".
!!Недоделано
==Математика пока немного странная, это вопрос к автору а не ко мне (сами увидите),== (поправил.) дни недели пишутся с большой буквы (это, я думаю, надо в русификаторе исправить, т. к. в русском они так не пишутся), код грязный(а вы не смотрите), длительного тестирования не было, так что возможны "артефакты" (сообщайте). Не переведен help, но тут уж я прошу помощи зала. Кто готов помочь стране -- напиши e-mail мне ;) 
!!Просто плохо
Это -- хак, со всеми вытекающими, но другого способа даже автор плагина не предусматривал.
Демонстрация русифицированного плагина [[ReminderMacros|ReminderMacros(ru)]] 
''Весия от 17 ноября, с правильным выводом прошедших дат. Обновите свою инсталляцию!''

<<showReminders leadtime:-150...150  >>
<<tabs welCome
"<<<" "Самое главное" "Самое главное"
"Версии русификатора" "Версии русификатора" "Версии русификатора"
"Про эту инсталляцию" "Про эту инсталляцию" "Про эту инсталляцию"
"Связь" "Как связаться?" "Как связаться?"
>>
! Помощь
!! Мышка

!!! Левая клавиша: производится выбор. Выбираются:

* лист - от икон дальше интервала (расстояние между соседними иконами);
* схема - рядом с иконой схемы, ближе интервала;
* икона - в зонах текста, идентификатора;
* узел - в пределах квадрата (появится при выборе);
* точка ввода - в пределах квадрата;
* примечание - в проделах квадрата.

!!! Правая клавиша в режиме редактирования: получить контекстное меню.

Вращать колесо: в окне графики сдвинуть поле графики по вертикали на 1 интервал, Shift+Колесо сдвинуть на 1 пиксель.

Ctrl+Колесо, Shift+Ctrl+Колесо: сдвинуть поле графики по горизонтали.

Или Ctrl+LeftMouse+движение - сдвинуть поле графики, тоже нажать колесо + движение.

Мышка также используется в окне текстов, при редактировании списка текстов для иконы «Сборка текста».

!! Клавиатура

Стрелка, Shift+Стрелка в режиме редактирования - сдвинуть на 1 интервал или 1 пиксель:

* выбран лист - сдвинуть на листе все схемы;
* выбрана схема - сдвинуть схему;
* выбрана икона, узел, точка ввода - сдвинуть вертикальную или горизонтальную линию с иконой, узлом, точкой ввода.

Горячих клавиш в программе нет.

''Клавиша “ESC”'' используется: при отказе от выполнения операции требующей выбор, при выходе из режима редактирования списка текстов иконы “Сборка текста”.

''Клавиша “DEL”'' используется в режиме редактирования списка текстов иконы “Сборка текста” для исключения текущего текста из списка.

!! Контекстное меню

* Вызывается кликом правой клавиши мышки.
* Видимость и активность пунктов меню зависит от варианта применения и контекста выбора.
* Просматриваются все пункты меню данного контекста, в пункте определен объект применения и выполняемое действие.

!! Страхование

* После открытия программы, имеем состояние окончания предыдущего сеанса работы.
* Страхование листа производится после значительных изменений, созданием файла …TMP в папке TMP каталога программы. Папка TMP создается программой.
* Незначительные изменения (ширина, положение икон, изменение текста, метка иконы) сохраняются в текущей копии;
* Обязательное страхование производится при выполнении пункта контекстного меню «Обновить».
* Перемещаться между страховыми копиями, можно выполняя пункты меню “<<”, “>>”. Можно вызвать любую копию. Для этого, получаем перечень копий, выполнив пункт меню "Лист/Выбор", выбрать строку и выделить в ней участок текста, сделать клик в поле графики.
* Текущую копию можно сдублировать наверх, выполнив пункт меню "Лист/Наверх".
* Часть страховых копий можно удалить, выполнить пункт меню "Лист/Удалить до текущего".
 
!! Заголовок

Содержит: имя программы, дата выпуска, вариант применения, номер отображаемой страховой копии, количество страховых копий, имя файла листа.

Работа производится со страховой копией файла листа, файл листа обновляется при выполнении пункта меню “Сохранить” или записывается с другим именем при выполнении пункта меню “Сохранит как …”.

!! Колонтитулы

Сверху и снизу листа в пределах интервала размещены колонтитулы: верхние, нижние, левые, средние, правые. По клику в зоне колонтитулов, тексты колонтитулов выводим в окно текстов.

!!! Главное меню

Видимость и активность пунктов меню зависит от варианта применения и контекста. Производится выполнение действий, выбор режимов, шрифта, формирование и обмен файлами. В меню, пункты могут помечаться галочкой как “установлено” и точкой как “выбран” из нескольких пунктов.

!!! Окно графики

Редактирование графики производится с использованием клавиатуры, мышки и главного меню. Размер поля графики: до 3000 х 3000 пикселей. Графика может находиться за границами поля, не отображаться и не размещаться в графическом файле, для доступа к ней производится сдвиг всех схем на листе.

Примечания для листа, схемы, иконы отображаются 3-мя квадратами, соответственно: управленческие, алгоритмические, программные. Для пустого примечания - пустой квадрат, при наличии текста - сплошной квадрат. У иконы “Сборка текста” имеется 4-й квадрат – список текстов данной иконы, используется для включения списка в другой список.

!!!Разделитель окон

Граница между окнами графики и текста, передвигается мышкой. Присутствует при открытом окне текста.

!!Окно текста

* Текст отображается в режимах просмотра или редактирования. Отображаемый текст выбирается мышкой в поле графики. 
* Шрифты для окон графики и текстов выбираются раздельно, шрифт графики сохраняется в выходном файле.
* При выходе из окна текстов и сохранения - делайте клик мышкой в поле графики.

!! Иконы

Иконам можно присвоить идентификаторы (по ГОСТ 19.701–90) для ссылок в документах или описаниях.

Икона может иметь следующие тексты: идентификатор, верхний, нижний, квадраты – управленческое примечание, алгоритмическое примечание, программный код, список сборки текста. Они выбираются в соответствующих зонах иконы. Использовать табуляцию в отображаемых на графике текстах не рекомендуется. Текст икон в поле графики автоматически делится на строки по ширине иконы, в окне текстов не разделять в пределах абзаца.

При работе с Дракон - листом можно установить метку у иконы, клик мышкой левее иконы в пределах интервала. Смысл меток может быть различным: выполнено, проверено, ошибка и т.д. Проверка содержания с простановкой меток (галочек), иногда называется “скрыжить”. Метки можно убрать повторным выбором и через меню "Правка / Лист, схема: убрать метки".

Можно производить поиск образца текста во всех иконах листа. Образец используется без учета регистра.

!!! Строка состояния

Содержит пояснения к выполняемым действиям и сообщения об их завершении.

!! Построение графики ДРАКОН - схем

В отдельных случаях дракон-схема строятся с дефектами:
* имеется пересечение линий,
* наложение линий на иконы,
* обратное направление линий,
* большие и малые расстояния между линиями и иконами,
* наложение схем.

Дефект всегда можно устранить:

* выполнить операций: "Обновить". При этом выполняется горизонтальное и вертикальное объединение линий, т.е. устраняется ступенчатое соединение линий. 
* Выполнить сдвиг икон, узлов (вертикалей  и горизонталей), так чтобы линии не имели пересечений;
* вернуться к предыдущей копии и повторить работу в другой последовательности.

При редактировании схема перестраивается в последовательности:
# устраняются изломы линий,
# производится объединение линий,
# раздвигается и сжимается по горизонтали и вертикали.

При необходимости, для устранения объединения линий, используется операция "Пересадить лиану".

При пересадке или заземлении лианы, ее можно продолжить рисованием ломаной линии до точки присоединения. Рисование производится кликом левой клавиши мышки в очередных узлах ломаной линии, удаление последнего отрезка линии производится кликом правой клавиши мышки. При рисовании линий, исключено появление пересечений с линиями и иконами.

Контролируйте правильность дракон - схемы.

!!! Сборка текстов

Можно установить несколько списков сбора текстов.

Икона «Сборка текста» позволяет сформировать список текста, хранить его, редактировать, производить по списку сборку текста. Текущая позиция в списке отмечена маркером – окружностью, включенные тексты имеют нумерацию. Устанавливается текущая позиция мышкой выбором в списке, удаляется текст в текущей позиции клавишей “DEL”,  включается текст после текущей позиции при выборе мышкой вне списка, выключается режим редактирования клавишей “ESC”. В список можно включить другой список, выбрав у него 4-й квадрат. 

Для каждой иконы “Сборка текста” включение редактирования списка текстов; установка пути и имени файла; создание командной строки; выполнение сборки; создание файла; выполнение командной строка производится выбором в главном меню. По умолчанию установлены значения: “Sborka.txt”, “Sborka.bat”. При отсутствии имени файла создание не производится. При отсутствии командной строки выполнение не производится. При отсутствии пути, используется каталог программы. 


!!! Отображение графики ДРАКОН – схем

При вводе икон, они имеют текст с наименование иконы или её части, в текст включен знак “?”. Так же при контроле схемы выводится знак “?”. Знак может присутствовать в иконах “Ветка” и ”Адрес”, если для них не установлено соответствие. Знак может присутствовать рядом с точкой ввода, которая является критической, т.е. конструкция пустая и требуется ввод икон. Критические точки ввода полностью отображаются только после выполнения операции “Обновить”. В завершенных схемах листа не должен присутствовать этот знак. 
!!Основные принципы GTD:


!!! Сбор
Продуктивность без стресса начинается с процесса разгрузки разума, которое заключается в фиксации всего более-менее важного на бумаге или другом носителе — в том, что Аллен называет корзиной: физический ящик для приёма сообщений, электронный почтовый ящик для приёма электронных сообщений, магнитофон, ноутбук, карманный компьютер, или их комбинация. Суть в том, чтобы выкинуть из головы всё более-менее важное на удобный носитель для последующей обработки. Все корзины должны быть освобождены (обработанны) по крайней мере раз в неделю. Аллен не настаивает на каком-то определённом методе сбора, но делает акцент на важности регулярного освобождения корзины. Любое место хранения (физический, электронный почтовый ящик, магнитофон, ноутбук, карманный компьютер, и т.д), приемлемо, если оно регулярно обрабатывается.


!!! Обработка
 
алгоритм обработки по GTDОбработка корзины идёт строго по алгоритму:

* Начинаем с верхнего элемента корзины. 
* Делаем один элемент за раз (при этом никогда ничего не возвращаем обратно) 
* Если элемент требует действия: 
** Делаем это (если на это требуется меньше 2-5 минут), ИЛИ 
** Делегирируем это кому-нибудь, ИЛИ 
** Откладываем это. 
* Если элемент не требует действия: 
** Оставляем это в справочной информации, ИЛИ 
** Выбрасываем это, ИЛИ 
** В список «когда-нибудь может быть». 

Если на действие требуется менее чем 2-5 минут, это должно быть немедленно сделано. Двухминутное правило обусловлено тем примерным временем, которое нужно, чтобы формально отложить действие.


!!! Организация
Для контроля за элементами ожидающими внимания, Аллен советует использовать ''набор списков'':

''Следующие действия'' — По каждому элементу, требующему внимания, решите, что является следующим действием, которое может быть физически выполнено. Например, если имеется элемент «Написать проектный отчёт», следующее действие может быть таким: «Написать письмо Михаилу с предложением о встрече» или: «Позвонить Марине для того, чтобы узнать требования к отчёту». Хотя элемент может требовать довольно много шагов и действий, всегда будет что-то, что должно быть сделано сначала, и этот шаг должен быть описан в списке следующих действий. Предпочтительно, чтобы эти шаги были организованы по контексту, в котором они могут быть сделаны (например, "в офисе", "по телефону" или «в магазине»). 

''Проекты'' — Каждый разомкнутый цикл в жизни или работе, требующий больше чем одного физического действия для достижения цели, становится проектом. Проекты необходимо контролировать и периодически делать обзор, чтобы удостовериться, что с каждым проектом связано следующее действие, и, таким образом, проект будет продвигаться. 

''Отложенное'' — Когда действие было делегировано кому-то или когда ожидается некоторое внешнее событие, прежде чем проект может быть продвинут, это отслеживается в системе и периодически выясняется, требуется ли действие или нужно послать напоминание. 

''Когда-нибудь/может быть'' — Вещи, которые будут сделаны в некоторый момент, но не прямо сейчас. Например, «выучить китайский» или «устроить вечеринку в бассейне.» 

''Календарь'' важен для контроля над встречами и поручениями; однако, Аллен рекомендует, чтобы календарь был зарезервирован только для тех вещей, которые должны быть сделаны в строго конкретный срок, или для встреч и поручений с заданным временем и местом. А дела, должны быть зафиксированы в списках следующих действий, а не в календаре.

Последний ключевой организующий компонент GTD — ''система документов''. Система документов должна быть лёгкой, простой и интересной. Даже единственный листок бумаги, если он нужен для справочной информации, должен получить свою собственную папку, если имеющиеся папки для него не подходят. Аллен предлагает одномерную, организованную в алфавитном порядке, систему хранения документов для того, чтобы быстро и просто восстанавливать необходимую информацию.


!!! Обзор
Списки действий и напоминания будут мало полезны, если не делать обзор по крайней мере ежедневно, или настолько часто, насколько это возможно. Учитывая время, энергию и ресурсы, доступные в данный момент, нужно найти самую важную задачу, которая может быть сделана немедленно, и сделать её. Если Вы имеете привычку откладывать свои дела, все закончится тем, что вы будете делать простые задачи и избегать трудных. Для решения этой проблемы, можно делать действия из списка один за другим, по аналогии с тем, как обрабатывается корзина. GTD требует, чтобы по крайней мере еженедельно, проводился обзор по всем действиям, проектам и «отложенным» элементам для того, чтобы удостовериться, что любые новые задачи или предстоящие события введены в систему, и что все актуально.


!!! Действия
Любая организационная система бесполезна, если в ней слишком много времени тратится на организацию задач вместо физического их выполнения. Как утверждает Дэвид Аллен, если такую систему сделать простой для совершения необходимых действий, то человек будет менее склонен их откладывать или «перегружаться» слишком большим количеством «разомкнутых циклов».
* ~TiddlyWiki 2.1.2
* плагин RuStyle 
* русифицированный плагин [[ReminderMacros|ReminderMacros(ru)]]
Шаблоны, стили, цвета, макросы и пр. -- стандартные.
----
^^[[открыть отдельно|Про эту инсталляцию]]^^
!!! Расширения (от версии 1.2.34)

Макросы позволяют вставлять в записку автоматически сгенерированный текст. Вызов макроса записывается между двойными угловыми скобками:
{{{
<<имя_макроса параметры_если_нужны>>
}}}
В режиме просмотра эта конструкция будет заменена на текст, генерируемый макросом.
В версии 1.2.34 ~TiddlyWiki уже включены некоторые макросы, кроме того можно устанавливать дополнительно макросы сторонних авторов или написанные вами.

Плагины расширяют функциональность TiddlyWiki. Это может быть как дополнительная кнопка, так и совершенно новые возможности, вроде использования TiddlyWiki в качестве почтового клиента.

* [[Некоторые встроенные макросы]]
* [[Наиболее интересные из сторонних макросов и плагинов]]
* [[Как установить расширение]]
!!Что это?
На этой страничке вы найдете достаточно хороший русификатор для новых версий ~TiddlyWiki (эта страничка тоже ~TiddlyWiki, если кто не понял), и русифицированный плагин [[ReminderMacros(ru)]]. Помощь не переведена, английский оригинал см. тут: http://www.geocities.com/allredfaq/reminderMacros.html. Как всегда, вы можете прочитать, что и как русифицировано/хакнуто, см. [[Особенности русификации ReminderMacros]], и посмотрите [[примеры использования|Напоминания (примеры)]].
!!Самое главное:
* [[Как русифицировать?]]
* [[Альтернативный способ русификации]]
* [[Особенности русификации]]
* [[Что еще поставить]], чтобы было удобнее работатьс русифицированной ~TiddlyWiki

Призываю всех, кто  знает ~JavaScript лучше меня и любит ~TiddlyWiki, сделать также плагин для расстановки правильных кавычек и прочей типографики!
----
^^[[открыть отдельно|Самое главное]]^^
* после первой загрузки сразу измените в [[опциях|OptionsPanel]] имя пользователя на свое
* возможность использовать внедренный HTML позволяет копировать с других сайтов текст вместе с оформлением
* вы можете скопировать в режиме просмотра записку в MS Word, сохранив таким образом ее оформление для печати или вставки в документ; учтите только, что:
** это единственный пункт, по которому ~FireFox проигрывает; для этой операции лучше подойдет Explorer
** скопированная записка будет оформлена не текущим стилем, а тем, что содержится в программном коде (его вы можете видеть если у вас нет записки, озаглавленной StyleSheet); впрочем, таблица останется таблицей
** если после вставки в MS Word вы видите пустой лист, включите отображение непечатаемых символов: текст может быть отформатирован скрытым шрифтом (меняется там же, где все свойства шрифта)
* активно используйте тэги, но следите, чтобы их не расплодилось слишком много
* не забывайте про поиск
* настройте MainMenu по своему усмотрению

!!!Пользователям ~FireFox под Windows
Следите, чтобы путь к вашему файлу не содержал пробелов, иначе ~FireFox не сможет сохранять изменения.
При первой попытке сохранения ~FireFox запрашивает у пользователя разрешение на эту операцию. Включите опцию "Запомнить разрешение" и нажмите OK. В дальнейшем вопросов не будет.

!!!Пользователям MS Internet Explorer
При загрузке вам придется все время "разрешать заблокированное содержимое". Если вы хотите избавиться хотя бы от лишних вопросов при сохранении изменений, сделайте следующее:
* создайте текстовый фал с таким содержимым
{{{
REGEDIT4
;This registry modification will open additional security zone in MS Internet Explorer

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0]
"Flags"=dword:00000219
}}}
и расширением {{{.reg}}}
* запустите его
* откройте "Свойства обозревателя", вкладка "Безопасность"
* выберите появившуюся зону безопасности "Мой компьютер" и нажмите "Уровень безопасности - Другой..."
* убедитесь, что в области, посвященной ~ActiveX все пункты отмечены как разрешенные
* грязно выругайтесь и переходите на ~FireFox :)
# [[Методология GTD]]
# [[Принципы GTD]]
# [[Средства и приёмы GTD]]
Соглашение по добавлению иллюстраций в TiddlyWiki - все рисунки должны распологатмя в папке с именем такимже как имя файла справки + точка + "Рисунки". Имя рисунков может быть русское и содержать пробел.

''Пример'' - Для просмотра - нажмите  РЕДАКТИРОВАТЬ

[img[Для просмотра - нажмите  РЕДАКТИРОВАТЬ|СправкаПоДраконСхемам.Рисунки/reib0.gif]]

Внимание!! Русская справка по TiddlyWiki от старой версии 1.24, это версия 2.4.1!! К ней есть английская справка : - > панель слева -> "Метки" -> features или formatting 

* [[Советы]]
* [[Форматирование]]
* [[Расширения]]
!! Средства и приёмы

!!! 43 Папки

Аллен предлагает организовать свои документы по системе, названной «43 папки». Двенадцать папок используются по одной на каждый месяц, и дополнительно 31 папка используется для каждого дня из следующих 31 дней. Папки упорядочены для того, чтобы помочь напоминать пользователю о действиях, которые нужно сделать в этот день.
Все на английском, к сожалению.

!!!TiddlyWiki
http://www.tiddlywiki.com/

!!!Плагины, стили и советы
http://homes.jcu.edu.au/~ccscb/mptw/
http://www.zRenard.com
http://tiddlywikitips.com/
http://www.elsdesign.com/tiddlywiki
Переведено и адаптировано с http://webpages.charter.net/one_each/
----
>This is a simple cheat sheet gleened from the [[TiddlyWiki Tutorial|http://www.blogjones.com/TiddlyWikiTutorial.html]]. 

!Форматирование текста
//Данный файл содержит дополнительные возможности форматирования, созданные с целью облегчить жизнь русскоязычным пользователям. Для таких возможностей в качестве примера использовано слово "альтернатива".//

|!Пример|!Реализация|
|''жирный''|{{{''жирный''}}}|
|>|^^//Выше не двойная кавычка, а две одинарных//^^|
|++альтернатива++|{{{++альтернатива++}}}|
|==зачеркнутый==|{{{==зачеркнутый==}}}|
|__подчеркнутый__|{{{__подчеркнутый__}}}|
|//курсив//|{{{//курсив//}}}|
|^^надстрочный^^|{{{^^надстрочный^^}}}|
|~~подстрочный~~|{{{~~подстрочный~~}}}|
|@@color(green):цветной@@|{{{@@color(green):цветной@@}}}|
|@@bgcolor(green):фон@@|{{{|@@bgcolor(green):фон@@}}}|
|@@выделение@@|{{{@@выделение@@}}}|
|{{{моноширинный}}}|{{{{{{моноширинный}}}}}}|
|~ОтменитьWikiWord|{{{~ОтменитьWikiWord}}}|
|>|^^//Что такое WikiWord//^^|
|[[ссылка]]|{{{[[ссылка]]}}}|
|(-альтернатива-)|{{{(-альтернатива-)}}}|
|[[внешняя ссылка|куда-то]]|{{{[[внешняя ссылка|куда-то]]}}}|
|(-альтернатива|куда-то-)|{{{(-альтернатива|куда-то-)}}}|

!блок моноширинного текста
{{{
 {{{
пример
 }}}
}}}
{{{
пример
}}}

!Горизонтальная линия
{{{----}}}
----

!Списки
{{{
* Начало
* Середина
** Середина 1
** Середина 2
}}}
* Начало
* Середина
** Середина 1
** Середина 2

!Нумерованный список
{{{
# Начало
# Середина
## Середина 1
## Середина 2
}}}
Альтернатива
{{{
№ Начало
№ Середина
№№ Середина 1
№№ Середина 2
}}}
# Начало
# Середина
## Середина 1
## Середина 2

!Изображение
{{{
[img[замещающий текст|image URL]]
}}}

!Таблицы
Строка таблицы должна начинаться с вертикальной черты (|).
{{{
|Закончите строку латинской с, чтобы создать название таблицы|c
|!Для заголовка "!" сразу после вертикальной черты.|!Заголовок2|!Заголовок3|
|строка1 столбец1|строка1 столбец2|строка1 столбец3|
|>|>|Объединение столбцов - знак "больше" ( >)|
|Объединение строк - знак " ~"|>| Пробел выравнивает вправо|
|~|>| Пробелы с обеих сторон центруют |
|>|>|bgcolor(green):Цвет фона bgcolor(цвет):|
}}}

|Закончите строку латинской с, чтобы создать название таблицы|c
|!Для заголовка "!" сразу после вертикальной черты.|!Заголовок2|!Заголовок3|
|строка1 столбец1|строка1 столбец2|строка1 столбец3|
|>|>|Объединение столбцов - знак "больше" ( >)|
|Объединение строк - знак " ~"|>| Пробел выравнивает вправо|
|~|>| Пробелы с обеих сторон центруют |
|>|>|bgcolor(green):Цвет фона bgcolor(цвет):|



!Цитаты
{{{
<<<
"Beware the Jabberwock, my son!
The jaws that bite, the claws that catch!
Beware the Jubjub bird, and shun
The frumious Bandersnatch!"
<<<
}}}
<<<
"Beware the Jabberwock, my son!
The jaws that bite, the claws that catch!
Beware the Jubjub bird, and shun
The frumious Bandersnatch!"
<<<

{{{
>У попа была собака
>...
>На могиле написал:
>>У попа была собака
>>...
>>На могиле написал:
}}}
>У попа была собака
>...
>На могиле написал:
>>У попа была собака
>>...
>>На могиле написал:

!Заголовки
{{{
!Заголовок
!!Подзаголовок
!!!Подзаголовок 2
!!!!Подзаголовок 3
!!!!!Подзаголовок 4
}}}
!Заголовок
!!Подзаголовок
!!!Подзаголовок 2
!!!!Подзаголовок 3
!!!!!Подзаголовок 4

!Внедренный HTML
{{{
<html>
С недавних пор в <a href="http://www.tiddlywiki.com/">TiddlyWiki</a> появилась возможность использовать <b>внедренный HTML</b>
</html>
}}}
<html>
С недавних пор в <a href="http://www.tiddlywiki.com/">TiddlyWiki</a> появилась возможность использовать <b>внедренный HTML</b>
</html>
Основное неудобство при работе с руским языком -- разметка. Для того, чтобы не мучится, постоянно переключая раскладку, постаьте ~WikiBar. Скачать/симпортировать отсюда: http://aiddlywiki.sourceforge.net/

После инсталляции при редактировании записи в правом верхнем углу (там, где ссылки: "готово", "отменить", "удалить"), появится кнопочка "wikibar", при нажатии на которую над областью редактирования будет размещена небольшая панелька с инструментами, позволяющими вводить основные команды форматирования мышью.
----
Также очень рекомендую поставить [[ReminderMacros(ru)]], он добавляет возможность записи важных дат с напоминаниями. См. [[Напоминания (примеры)]]
ГНОМ – Графический Наглядный Очень Маленький язык - декларативный язык. Подмножество языка [[ГРАФ]].
Пока смотри -> [[Язык Дракон]]
!! Реализация языков ДРАКОН и ГНОМ в интегрированной среде DRAKON
* [[основные понятия]] языка Дракон
* [[иконы]] языка Дракон
* [[макроиконы]] языка Дракон

Графические языки Владимира Даниеловича Паронджанова описаны в его книге "Почему мудрец похож на обезьяну".

* ДРАКОН – Дружественный Русский Алгоритмический язык, Который Обеспечивает Наглядность – процедурный язык.
* ГРАФ – ГРАФический язык – мощное оружие интеллекта.
** ГНОМ – Графический Наглядный Очень Маленький язык - декларативный язык. Подмножество языка ГРАФ.
** МОЛНИЯ – Маленький Очень Легкий Наглядный И удобный Язык. Подмножество языка ГРАФ.


Интегрированная среда DRAKON является результатом эволюционного развития предыдущих версий до 2009 года и реализует языки Дракон и Гном. В DRAKONе учтены предложения на форуме http://www.oberoncore.ru/, возможно не в полной мере. 

Среда DRAKON не совместима с предыдущей версией по формату файла .drt. Это оправдывается следующим: согласно принципу экологии программирования, после 7-и модификаций программа должна создаваться вновь; предложения на форуме потребовали значительно переработать и расширить структуры данных и интерфейса программы. Вероятно, программа не имеет широкого практического применения, т.к. отсутствуют такие сообщения. 

Дальнейших планов развития программы нет, данную редакцию будем считать финальной. Всё это позволит пользователям с большим доверием расширить область применения программы с перспективой и в будущем использовать.

!!!! В интегрированной среде DRAKON имеется ряд отступлений и расширений от описания языков и от предыдущей версии среды.

1. Добавлена новая ''схема ГНОМ – для отображения декларативных знаний''. В ней полностью реализован язык ГНОМ, т.е. есть “Запоминатель”. Схема расширена иконами: “Комментарий” и “Боковой присоединяемый комментарий”, “Текст в рамке”, “Текст без рамки”, “Сборка текста”.

2. Из языка Дракон отсутствует операции: “Вырезать вставку”, ”Вставить вставку”, используются операции с фрагментом шампура.

3. Так как икона “Вставка” часто воспринимается как вызов процедуры или функции, то к ней можно присоединить икону “Параметры”,  аналогично иконе “Заголовок”.

4. К иконам “Вставка” и “Заголовок” для отличия от процедуры можно присоединить признак функции в виде “>”.

5. Вокруг схем можно отобразить рамку. Это позволяет выделить отдельные схемы или облегчит вырезание ножницами схем для последующей компоновки большого чертежа или размещения на демонстрационной поверхности.

6. В языках иконы имеют только текст. Здесь в среде DRAKON дополнительно может присутствовать идентификатор иконы, отметка (галочка), управленческое, алгоритмическое, программное примечания, список сборки текстов.

7. При специальных требованиях к функционированию алгоритма, к иконе можно присоединить “Боковой комментарии” с уточнением назначения иконы и функционирования алгоритма. 

8. В среде DRAKON термин “точка ввода” заменяет термин языка Дракон “валентная точка”.
!! ЗАЧЕМ НУЖНА ВЕТКА?
Для разбиением алгоритма на ''смысловые части'' по принципу “взглянул — и сразу стало ясно!”. А сами смысловые блоки именуются ветками.
!!! Слово “ветка” имеет два значения. 
# С одной стороны, это смысловой “кусок” алгоритма.
# С другой стороны, ветка — составной оператор языка ДРАКОН, который не имеет аналогов в известных языках. Оператор “ветка” состоит из 3-х частей:
* начала ветки (икона “имя ветки”),
* тела ветки (которое может содержать большое число икон) 
* конца ветки (который содержит одну или несколько икон “адрес” либо икону “конец”).

!!! Итак, зачем нужна ветка? 
Чтобы помочь работнику умственного труда, программисту и разработчику технологии ''формализовать смысловое разбиение проблемы, программы или техпроцесса на части и дать частям удобные смысловые названия''. При этом разделение проблемы на N смысловых частей реализуется путем разбиения алгоритма на N веток.

!! КАК РАБОТАЕТ ВЕТКА?

Ветка имеет один вход и один или несколько выходов. Входом служит икона “[[имя ветки]]”, содержащая нименование (идентификатор) ветки. Визуальный оператор “имя ветки” не выполняет никаких действий, это всего лишь метка, объявляющая название смысловой части программы. Исполнение дракон-алгоритма всегда начинается с крайней левой ветки (рис. 3, 4).
Выходом из ветки служит икона “[[адрес]]”, в которой записывается имя следующей по порядку исполнения ветки. Икона “адрес” — это замаскированный оператор перехода (gоtо), однако он передает управление не куда угодно, а только на начало выбранной ветки. Вход в ветку возможен только через ее начало. Выход из последней ветки осуществляется через икону “[[конец]]”.

!!!КАК СЛЕДУЕТ РАСПОЛАГАТЬ ВЕТКИ В ПОЛЕ ЧЕРТЕЖА?

Ветки упорядочены двояко: логически и пространственно. 
* Логическая последовательность исполнения веток определяется метками, записанными в иконах “адрес”. Однако логический порядок — это еще не все. 
На рис. 5 показаны три разных способа пространственного расположения веток, которые имеют один и тот же логический порядок. Чтобы устранить пространственную неоднозначность и облегчить понимание смысла дракон-схемы, вводится ''правило “чем правее — тем позже”''. Оно означает: ''ветка, нарисованная правее, работает позже всех веток, находящихся левее''.
Алгоритм, нарисованный согласно правилу “чем правее — тем позже”, считается хорошим, эргономичным (рис. 5в). Схемы, где это правило нарушается, объявляются плохими (рис. 5а,б), их использование запрещено.
В разрешенных (эргономичных) алгоритмах имеет место следующий порядок работы (рис. 3, 4, 5в, 6а):
* первой работает крайняя левая ветка, последней — крайняя правая;
* остальные ветки передают управление друг другу слева направо (при этом может случиться так, что некоторые ветки будут пропущены);
* иногда образуется так называемый “[[веточный цикл]]”. Это происходит, когда в иконе “адрес” указано имя собственной или одной из ''левых веток''. На рис. 4 и 6а ''веточный цикл помечен черными треугольниками''.
Иногда образуется так называемый “веточный цикл”. Это происходит, когда в иконе “адрес” указано имя собственной или одной из ''левых веток''. На рис. 4 и 6а ''веточный цикл помечен черными треугольниками''.
----
* [[ветка]]
!! Список икон языка Дракон
Иконами называются Графоэлементы (графические буквы) языка ДРАКОН.
Соединяя иконы и [[макроиконы|]] по определенным правилам, можно строить разнообразные алгоритмы.
!!!Сисок Икон

[>img[Рис.1 Иконы языка Дракон|СправкаПоДраконСхемам.Рисунки/Рис.1 Иконы языка Дракон.png]]
* [[заголовок]]
* [[конец]]
* [[действие]]
* [[вопрос]]
* [[выбор]] 
* [[вариант]]
* [[имя ветки]] 
* [[адрес]]
* [[вставка]] 
* [[полка]]
* [[формальные пораметры]]
* [[начало цикла ДЛЯ]]
* [[конец цикла ДЛЯ]]
* [[вывод]]
* [[ввод]] 
* [[пауза]]
* [[период]]
* [[пуск таймера]]
* [[синхронизатор]] (по таймеру)
* [[паралелный процесс]]
* [[коментарий]]
* [[правый коментарий]]
* [[левый коментарий]]
* [[петля цикла]]
* [[петля силуэта]]
----
* [[макроиконы]] языка Дракон
* [[шампур-блок]] 
* [[основные понятия]] языка Дракон
!! Список макроикон языка Дракон
Подобно тому, как буквы объединяются в слова, [[иконы]] объединяются в составные иконы — макроиконы.
!!!Сисок макроикон языка Дракон

[>img[Рис 2. Макроиконы языка Дракон|СправкаПоДраконСхемам.Рисунки/Рис 2. Макроиконы языка Дракон.png]]

* [[заголовок с параметрами]]
* [[развилка]]
* [[переключатель]]
* [[обычный цикл]]
* [[переключающий цикл]]
* [[цикл ДЛЯ]]
* [[цикл ЖДАТЬ]]
* [[действие по таймеру]]
* [[полка по таймеру]]
* [[развилка по таймеру]]
* [[переключатель по таймеру]]
* [[обычный цикл по таймеру]]
* [[переключающий цикл по таймеру]]
* [[цикл ДЛЯ по таймеру]]
* [[цикл ЖДАТЬ по таймеру]]
* [[вставка по таймеру]]
* [[вывод по таймеру]]
* [[ввод по таймеру]]
* [[пуск таймера по таймеру]]
* [[паралельный процес по таймеру]]
----
* [[основные понятия]] языка Дракон
* [[иконы]] языка Дракон
* [[макроиконы]] языка Дракон
* [[шампур-блок]]
* [[ветка]]
* [[шапка]]
* [[примитив]]
* [[силуэт]]
* [[Дракон-схема]]
Дракон-схема с ветками называется силуэтом, без веток — примитивом.

[<img[Рис 3. Примитив и Силуэт|СправкаПоДраконСхемам.Рисунки/Рис 3. Примитив и Силуэт.png]]

Примитив есть последовательное соединение иконы “[[заголовок]]” [[шампур-блок]]ов и иконы “[[конец]]”. У примитива иконы “заголовок” и “конец” обязательно лежат на одной вертикали, которая называется [[шампуром|шампур-блок]]. 
Примитив рекомендуется использовать, если дракон-схема очень простая (примитивная) и содержит не более 5...15 икон. В противном случае, чтобы улучшить читаемость программы, выгоднее использовать [[силуэт]]. Нарушение этого правила обычно чревато неприятностями, ибо мешает читателю выявить сущность решаемой проблемы и, следовательно, затрудняет и замедляет понимание смысла программы.
''Дракон-схема с ветками называется силуэтом'', без [[веток|ветка]] — примитивом.

[>img[Рис 3. Примитив и Силуэт|СправкаПоДраконСхемам.Рисунки/Рис 3. Примитив и Силуэт.png]]

В сложных случаях силуэт позволяет существенно уменьшить интеллектуальные усилия, затрачиваемые на понимание алгоритма. В силуэте крупные структурные части программы (ветки) четко выделены, они пространственно разнесены в поле чертежа, образуя вместе с тем легко узнаваемый, стабильный, предсказуемый и целостный зрительный образ. А в примитиве структурные части не выделены и перемешаны (“всё в одной куче”), что затрудняет чтение и анализ сложных алгоритмов. Однако для простых случаев (менее 5...15 икон) [[примитив]], как правило, оказывается более предпочтительным.

!! ЧТО ЛУЧШЕ: ПРИМИТИВ ИЛИ СИЛУЭТ?

Дракон-схема с ветками называется силуэтом, без веток — примитивом. Силуэт, представленный на рис. 6а, можно изобразить в виде примитива (рис. 6б). Примитив есть последовательное соединение иконы “заголовок” шампур-блоков и иконы “конец”. У примитива иконы “заголовок” и “конец” обязательно лежат на одной вертикали, которая называется шампуром. На этой же линии лежат главные вертикали шам-пурблоков. Образно говоря, шампур пронизывает иконы примитива (возможно, не все) подобно тому, как настоящий шампур пронизывает кусочки шашлыка.
Примитив рекомендуется использовать, если дракон-схема очень простая (примитивная) и содержит не более 5...15 икон. В противном случае, чтобы улучшить читаемость программы, выгоднее использовать силуэт. Нарушение этого правила обычно чревато неприятностями, ибо мешает читателю выявить сущность решаемой проблемы и, следовательно, затрудняет и замедляет понимание смысла программы.
Например, алгоритм на рис. 6б выглядит громоздким и неоправданно сложным для восприятия. Это вызвано тем, что он содержит 19 икон, однако изображен в виде примитива. Криминал в том, что схема на рис. 6б не позволяет читателю мгновенно (за несколько секунд) распознать визуально-смысловую структуру алгоритма. В самом деле, из скольких частей состоит решаемая проблема? Глядя на рис. 6б, ответить на этот вопрос довольно трудно, а быстро ответить — невозможно. Положение в корне меняется, когда мы смотрим на рис. 6а, где тот же самый алгоритм изображен в виде силуэта. Тут, как говорится, и ежу ясно: алгоритм состоит из четырех частей: “поиск автобуса”, “ожидание посадки”, “посадка в автобус”, “поездка”. Однако это не все: не менее важно и то обстоятельство, что запутанность зрительного рисунка исчезла и схема приобрела новое эстетическое (эргономическое) качество: элегантность, ясность и прозрачность.
Таким образом, в сложных случаях силуэт позволяет существенно уменьшить интеллектуальные усилия, затрачиваемые на понимание алгоритма. В силуэте крупные структурные части программы (ветки) четко выделены, они пространственно разнесены в поле чертежа, образуя вместе с тем легко узнаваемый, стабильный, предсказуемый и целостный зрительный образ. А в примитиве структурные части не выделены и перемешаны (“всё в одной куче”), что затрудняет чтение и анализ сложных алгоритмов. Однако для простых случаев (менее 5...15 икон) примитив, как правило, оказывается более предпочтительным.
Образно говоря, шампур пронизывает иконы [[примитив]]а (возможно, не все) подобно тому, как настоящий шампур пронизывает кусочки шашлыка.
Шампур-блок — часть дракон-схемы, имеющая один вход сверху и один выход снизу, расположенные на одной вертикали. Примерами шампур-блоков являются [[иконы]] И3 — И10, И12 — И16, И18, И20, И21 и [[макроиконы]] 2—20.
!!!ЧТО ТАКОЕ ШАПКА?

С точки зрения читателя, любой незнакомый или забытый алгоритм — чрезвычайно сложная проблема, которую он отчаянно пытается понять, преодолевая мощное “сопротивление материала”. Чтобы упростить дело и облегчить задачу понимания, нужно, чтобы читатель “прозрел” и, расчленив проблему на части, увидел ее смысловую структуру в терминах предметной области. Причем увидел не в фигуральном смысле слова, не с помощью воображения, не духовным оком, а своими двумя глазами — на бумаге или экране.
Но как это сделать? Трудность в том, что ни один из существующих языков не предоставляет читателю, изучающему сложную программу или технологию, эффективной помощи, ''позволяющей моментально (за несколько секунд) уяснить ее структуру, т. е. деление на смысловые блоки''. В языке ДРАКОН имеются специальные средства, обеспечивающие решение задачи.

''Шапкой называется верхняя часть дракон-схемы (рис. 4), которая включает заголовок алгоритма и комплект икон “имя ветки”.'' Назначение шапки — помочь читателю мгновенно (не более чем за несколько секунд) сориентироваться в проблеме и получить мощную подсказку — ответ на три наиболее важных вопроса:

1) как называется проблема?
2) из скольких частей она состоит?
3) как называется каждая часть?

Ведь именно с этих вопросов начинается наше знакомство с любой задачей при рациональном подходе к делу.

Вот ответы для рис. 4.
* Как называется проблема?  Рыбная ловля.
* Из скольких частей состоит проблема?  Из четырех.
* Как называется каждая часть? 
** 1. Подготовка к ловле.
** 2. Ожидание клева. 
** 3. Рыбацкая работа.
** 4. Обратная дорога.


Дополнительные удобства связаны с тем, что шапка занимает “парадное” место в поле чертежа, а названия смысловых частей помещаются внутри особых рамок уникальной формы и благодаря этому моментально приковывают к себе внимание читателя без всяких усилий с его стороны.
Таким образом, ДРАКОН предоставляет читателю эффективный трех-этапный метод познания незнакомой или забытой проблемы. 
# На первом этапе, анализируя шапку, читатель узнает назначение алгоритма и его деление на смысловые части (ветки). 
# На втором — осуществляется углубленный анализ каждой ветки. 
# На третьем  - производится разбор взаимодействия веток