<!--{{{-->
<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]];}

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<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 excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
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>>
/***
|!Параметр|!Цвет|!Параметр|!Цвет|!Параметр|!Цвет|!Параметр|!Цвет|
|Background|background-color:#f6f6f6;|~PrimaryPale|background-color:#8cf;|~SecondaryPale|background-color:#ffc;|~TertiaryPale|background-color:#eee;|
|Foreground|background-color:#000;|~PrimaryLight|background-color:#18f;|~SecondaryLight|background-color:#fe8;|~TertiaryLight|background-color:#ccc;|
|||~PrimaryMid|background-color:#04b;|~SecondaryMid|background-color:#db4;|~TertiaryMid|background-color:#999;|
|Error|background-color:#f88;|~PrimaryDark|background-color:#014;|~SecondaryDark|background-color:#841;|~TertiaryDark|background-color:#666;|
!Цвета текста, фона и ссылок в заголовках таблиц разных уровней
|!Параметр|!Цвет|!Параметр|!Цвет|!Параметр|!Цвет|!Параметр|!Цвет|!Параметр|!Цвет|
|~TableHeader|background-color:#fcfcfc;|~TableHeader2|background-color:#960;|~TableHeader3|background-color:#960;|~TableHeader4|background-color:#960;|~TableHeader5|background-color:#850;|
|~TableHeaderBg|background-color:#db4;|~TableHeader2Bg|background-color:LightYellow;|~TableHeader3Bg|background-color:HoneyDew;|~TableHeader4Bg|background-color:LavenderBlush;|~TableHeader5Bg|background-color:pink;|
|~TableHeaderRef|background-color:#ffa;|~TableHeader2Ref|background-color:#089;|~TableHeader3Ref|background-color:#089;|~TableHeader4Ref|background-color:#089;|~TableHeader5Ref|background-color:#078;|
!Цвета, используемые в подключаемых модулях и в [[пользовательской таблице оформления|StyleSheet]]
|!Параметр|!Цвет|!Описание параметра|
|~HeaderTop|background-color:#04b;|Top gradient color of the wiki header {{remark{(верхний цвет градиентного заголовка)}}} |
|~HeaderBottom|background-color:#18f;|Bottom gradient color of the wiki header {{remark{(нижний цвет градиентного заголовка)}}} |
|~PreBg|background-color:#ffc;|Preformatted text {{remark{(code samples, etc.)}}} background color {{remark{(цвет фона форматированного текста)}}} |
|~PreBorder|background-color:#fe8;|Preformatted text border color {{remark{(цвет рамки вокруг форматированного текста)}}} |
|~FooterTop|background-color:#ffe4c0;|#eee #ffe4c0 тоже неплохо смотрелся |
|~FooterBottom|background-color:#eed090;|#ddd; #eed090 тоже неплохо смотрелся |
|~FooterBg|background-color:#fcdc66;|Цвет однородного фона подвала |
|~FooterBorder|background-color:#cba;|#ccc #cba тоже неплохо смотрелся|
|~FooterText|background-color:#000;|Цвет текста в подвале |
|~FooterRef|background-color:#950;|Цвет ссылок в подвале |
/%
Background: #f6f6f6
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

TableHeader: #fcfcfc
TableHeaderBg: #db4
TableHeaderRef: #ffa
TableHeader2: #960
TableHeader2Bg: LightYellow
TableHeader2Ref: #089
TableHeader3: #960
TableHeader3Bg: HoneyDew
TableHeader3Ref: #089
TableHeader4: #960
TableHeader4Bg: LavenderBlush
TableHeader4Ref: #089
TableHeader5: #850
TableHeader5Bg: pink
TableHeader5Ref: #078

HeaderTop: #04b
HeaderBottom: #18f
PreBg: #ffc
PreBorder: #fe8
FooterTop: #ffe4c0
FooterBottom: #eed090
FooterBg: #fcdc66
FooterBorder: #cba
FooterText: #000
FooterRef: #950

***/

//%/
[[Что тут есть]]
[[Новости]]
/***
|Name:|DisableWikiLinksPlugin|
|Source:|http://www.TiddlyTools.com/#DisableWikiLinksPlugin|
|Version:|1.6.0|
|Author:|Eric Shulman|
|License:|http://www.TiddlyTools.com/#LegalStatements|
|CoreVersion:|2.1|
|Type:|plugin|
|Description:|selectively disable TiddlyWiki's automatic WikiWord linking behavior|
***/
//{{{
version.extensions.DisableWikiLinksPlugin= {major: 1, minor: 6, revision: 0, date: new Date(2008,7,22)};

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

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

Tiddler.prototype.coreAutoLinkWikiWords = Tiddler.prototype.autoLinkWikiWords;
Tiddler.prototype.autoLinkWikiWords = function() {
/*
	var skip=(this.matchText.substr(0,1)==config.textPrimitives.unWikiLink)?1:0;
	var title=this.substr(skip);
	var exists=store.tiddlerExists(title);
	var exists=store.tiddlerExists(this.title);
alert(this.title+"; "+exists);
	if (config.options.chkDisableNonExistingWikiLinks && !exists) return false;
*/
	// if all automatic links are not disabled, just return results from core function
	if (config.options.chkDisableWikiLinks) return false;
	return this.coreAutoLinkWikiWords.apply(this,arguments);
}

Tiddler.prototype.disableWikiLinks_changed = Tiddler.prototype.changed;
Tiddler.prototype.changed = function()
{
	this.disableWikiLinks_changed.apply(this,arguments);
	// remove excluded wiki words from links array
	var t=store.getTiddlerText(config.options.txtDisableWikiLinksList,"").readBracketedList();
	if (t.length) for (var i=0; i<t.length; i++)
		if (this.links.contains(t[i]))
			this.links.splice(this.links.indexOf(t[i]),1);
}

config.optionsDesc["chkDisableWikiLinks"]="Disables WikiLinks";
config.optionsDesc["chkDisableNonExistingWikiLinks"]="Disables only non-existing WikiLinks";
config.optionsDesc["chkAllowLinksFromShadowTiddlers"]="Allows WikiLinks from ShadowTiddlers";
config.optionsDesc["txtDisableWikiLinksList"]="Name of tiddly which contains the default settings for DisableWikiLinksPlugin";
config.optionsDesc["txtDisableWikiLinksTag"]="Disables WikiWords for tiddlers, marked by this tag";

//}}}
|!Description|!Minimal version|!Full complect|
|TiddlyWiki 2.6.2 with russian translation| [[message changing only|./plugins/TiddlyWiki.2.6.2.empty.html]] | [[all messages and service tiddlers in russian|./plugins/TiddlyWiki.2.6.2.rus.html]] |
|TiddlyWiki 2.6.4 with russian translation| [[message changing only|./plugins/TiddlyWiki.2.6.4.empty.html]] | [[all messages and service tiddlers in russian|./plugins/TiddlyWiki.2.6.4.rus.html]] |
|TiddlyWiki 2.8.1 with russian translation| [[message changing only|./plugins/TiddlyWiki.2.8.1.empty.html]] | [[all messages and service tiddlers in russian|./plugins/TiddlyWiki.2.8.1.rus.html]] |
|[[ImportTablePlugin]] {{remark{(it colorised ''Import'' table depending of change date or size of importing and existing tiddlers (my first mod for TW))}}} | [[actual|./plugins/importTablePlugin.html]] | |
|[[ExcludeOrphansPlugin]] {{remark{(turns on ''excludeOrphans'' tag for excluding tiddlers like plugins/themes/pictures/etc from ''Orphans'' list)}}}| [[actual|./plugins/excludeOrphansPlugin.html]] | |
|[[TableHeadersPlugin]] {{remark{(enables different table headers (with prefixes: !, !!, !!! and so on))}}}| [[actual|./plugins/tableHeadersPlugin.html]] | [[plugin, palette and simple StyleSheet|./plugins/tableHeadersPlugin.and.styles.html]] |
|Two columns template with standard colour palette| template and palette {{remark{(not found yet)}}}/%|./plugins/vmunt.template.std.html]]%/ | [[with common modules and russian translations|./plugins/vmunt.template.std.full.html]]|
|Two columns template with light-blue palette| template and palette/%|./plugins/vmunt.template.lightblue.html]]%/ | |
{{remark{Make right click on any link there and select "Save object as&hellip;"}}}
<!--{{{-->
<table width=100%><tr>
	<td valign=top><div class='title' macro='view title'></div></td>
	<td valign=top><div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div></td>
</tr></table>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit tags'></div>
<div class='editorFooter'>
	<span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span>
</div>
<div class='editor' macro='edit text'></div>
<!--}}}-->
/***
|''Name:''|ExcludeOrphansPlugin|
|''Author:''|vmunt|
|''Description:''|Обработчик тега excludeOrphans<br>Тag excludeOrphans handler|
|''Version:''|0.1|
|''Date:''|2010|
|''Source:''|http://vmunt.site/tw|
|''License:''|BSD open source license|
|''CoreVersion:''|2.6.0|
Этот модуль создаёт обработчик тега {{{excludeOrphans}}}. Заметки с этим тегом не появляются в списке Потери. Можно использовать для пометки плагинов {{remark{(заметок, помеченных тегом systemConfig, ибо они доступны из сервисных меню, генерируемых кодом)}}}, и для заметок, описывающих авторов заметок {{remark{(ибо ссылка на автора всё равно присутствует в заголовке каждой заметки)}}}. Плагин сделан простой подменой функции {{{TiddlyWiki.prototype.getOrphans}}}
Eng:
This plugin creates tag {{{excludeOrphans}}} handler. This tag useful for {{{systemConfig}}} tiddlers, author tiddlers and others service tiddlers, links to them missing in text tiddlers in this wiki. Tiddlers marks for this tag is not shown in list More/Orphans. Plugin makes as simple replace by function {{{TiddlyWiki.prototype.getOrphans}}}

{{remark{(If you find ugly constructions in my English, I will be pleased to advice how to makes this text more correct. My native language is Russian, and I have no language practice before...}}}
***/
//{{{
// Return an array of names of tiddlers that are defined but not referred to
TiddlyWiki.prototype.getOrphans = function()
{
	var results = [];
	this.forEachTiddler(function (title,tiddler) {
		if(this.getReferringTiddlers(title).length == 0 && !tiddler.isTagged("excludeLists") && !tiddler.isTagged("excludeOrphans"))
			results.push(title);
	});
	results.sort();
	return results;
};
//}}}
Назначение и описание TiddlyWiki можно прочитать [[здесь|tw.tutorial.rus.html#TiddlyWiki]] 
Для начала работы с пустой TiddlyWiki Вам может потребоваться изменить следующие заметки:
* [[Заголовок|SiteTitle]] и [[Подзаголовок|SiteSubtitle]] этой TiddlyWiki
* Содержимое [[Главного меню|MainMenu]] ({{remark{которое обычно располагается слева}}})
* [[Заметки, открываемые по умолчанию|DefaultTiddlers]]
Ваше имя для подписывания корректировок можно ввести тут: <<option txtUserName>>
/***
|''Name:''|ImportTablePlugin|
|''Old name:''|ImportTiddlersExp|
|''Author:''|vmunt|
|''Description:''|Расширенное меню импорта заметок|
|''Version:''|0.1.1|
|''Date:''|2010|
|''Source:''|http://vmunt.site/tw|
|''License:''|BSD open source license|
|''CoreVersion:''|2.6.0|
|''Remark:''|Не закончена функция formatDateStr() и стоит явное указание форматной строки {{remark{(потому что выравнивание колонки по правому краю в wizard-е пока не знаю, как делать)}}}. Также думаю сделать закомментированный вариант английских названий колонок|
Вместо такого меню импорта:
|!Заметка|!Размер|!Метки|
|TiddlyWiki:rus|26 KB|systemConfig|
делает такое
|!Заметка|!Метки|!Размер|!Кем|!Изменена|!Старая дата|!Бывший автор|!Сколько занимала|
|TiddlyWiki:rus|systemConfig|26 KB|vmunt|16.06.2010|28.07.2010|vmunt|26 KB|
***/
//{{{
config.macros.importTiddlers.listViewTemplateExp = {
	columns: [
		{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
		{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
		{name: 'Tags', field: 'tags', title: "Метки", type: 'Tags'},
		{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Размер", type: 'Size'},
		{name: 'Modifier', field: 'modifier', title: "Кем", type: 'String'},	//**** vmunt: added ****
		{name: 'Modified', field: 'modified', title: "Изменена", type: 'String'},	// Fri Jun 4 09:37:00 UTC+0600 2010
		{name: 'StoreModifier', field: 'sModified', title: "Старая дата", type: 'String'}, // 201006041906
		{name: 'StoreModified', field: 'sModifier', title: "Бывший автор", type: 'String'},
		{name: 'StoreSize', field: 'sSize', title: "Сколько занимала", type: 'Size'}],
	rowClasses: [
		{className: 'warning', field: 'sNewer'},
		{className: 'lowlight', field: 'sEqual'}
]};

String.prototype.formatDateString = function(template) {
	function hour12(s) { return (int.s > 12) ? zeroPad(int.s - 12,2) : int.s; }

	var t = template.replace(/wYYYY/g,this.substr(0,4));
	t = t.replace(/wYY/g,this.substr(2,4));
	t = t.replace(/YYYY/g,this.substr(0,4));
	t = t.replace(/YY/g,this.substr(2,4));
	t = t.replace(/mmm/g,config.messages.dates.shortMonths[parseInt(this.substr(4,2))-1]);
	t = t.replace(/MMM/g,config.messages.dates.months[parseInt(this.substr(4,2))-1]);
	t = t.replace(/0MM/g,this.substr(4,2));
	t = t.replace(/MM/g,parseInt(this.substr(4,2))); // not quite correct
	t = t.replace(/0DD/g,this.substr(6,2));
	t = t.replace(/DD/g,parseInt(this.substr(6,2)));

//	t = t.replace(/0mm/g,String.zeroPad(this.getMinutes(),2));
//	t = t.replace(/mm/g,this.getMinutes());
//	t = t.replace(/0hh12/g,String.zeroPad(this.substr(8,2)));
/*
	t = t.replace(/hh12/g,this.getHours12());
	t = t.replace(/0hh/g,String.zeroPad(this.getHours(),2));
	t = t.replace(/hh/g,this.getHours());
	t = t.replace(/0ss/g,String.zeroPad(this.getSeconds(),2));
	t = t.replace(/ss/g,this.getSeconds());
	t = t.replace(/[ap]m/g,this.getAmPm().toLowerCase());
	t = t.replace(/[AP]M/g,this.getAmPm().toUpperCase());
	t = t.replace(/0WW/g,String.zeroPad(this.getWeek(),2));
	t = t.replace(/WW/g,this.getWeek());
	t = t.replace(/DDD/g,config.messages.dates.days[this.getDay()]);
	t = t.replace(/ddd/g,config.messages.dates.shortDays[this.getDay()]);
	t = t.replace(/DDth/g,this.getDate()+this.daySuffix());
	var tz = this.getTimezoneOffset();
	var atz = Math.abs(tz);
	t = t.replace(/TZD/g,(tz < 0 ? '+' : '-') + String.zeroPad(Math.floor(atz / 60),2) + ':' + String.zeroPad(atz % 60,2));
	t = t.replace(/\\/g,"");
*/
	return t;
};
config.macros.importTiddlers.onGerTiddlerListOrig = config.macros.importTiddlers.onGetTiddlerList;	// Save pointer to original macro

config.macros.importTiddlers.onGetTiddlerList = function(context,wizard) {
	if(context.status !== true) {
		wizard.setButtons([{caption: config.macros.importTiddlers.cancelLabel, tooltip: config.macros.importTiddlers.cancelPrompt, onClick: config.macros.importTiddlers.onCancel}],config.macros.importTiddlers.errorGettingTiddlerList);
		return;
	}
	// Extract data for the listview
	var listedTiddlers = [];
	if(context.tiddlers) {
		for(var n=0; n<context.tiddlers.length; n++) {
			var tiddler = context.tiddlers[n];
			var ss = 0;
			if (store.tiddlerExists(tiddler.title)) {
				ss = store.getTiddlerText(tiddler.title);
				ss = ss.length > 0 ? ss.length : -1;
			}
			var tm = tiddler.modified.convertToYYYYMMDDHHMM();
			var sm = store.getValue(tiddler.title,'modified');
			listedTiddlers.push({
				title: tiddler.title,
				modified: tm.formatDateString("0DD.0MM.YYYY"), // config.views.wikified.dateFormat),
				modifier: tiddler.modifier,
				text: tiddler.text ? wikifyPlainText(tiddler.text,100) : "",
				tags: tiddler.tags,
				size: tiddler.text ? tiddler.text.length : 0,
				tiddler: tiddler,
//*** vmunt added ***
				sModified: ss == 0 ? '' : sm.formatDateString("0DD.0MM.YYYY"), // config.views.wikified.dateFormat), //sm.formatDateString("DD.0MM.YYYY")
				sModifier: ss == 0 ? '' : store.getValue(tiddler.title,'modifier'),
				sSize: ss,
				sEqual: sm==tm ? true : false,
				sNewer: sm>tm ? true : false
			});
		}
	}
	listedTiddlers.sort(function(a,b) {return a.title < b.title ? -1 : (a.title == b.title ? 0 : +1);});
	// Display the listview
	wizard.addStep(config.macros.importTiddlers.step3Title,config.macros.importTiddlers.step3Html);
	var markList = wizard.getElement("markList");
	var listWrapper = document.createElement("div");
	markList.parentNode.insertBefore(listWrapper,markList);
	var listView = ListView.create(listWrapper,listedTiddlers,config.macros.importTiddlers.listViewTemplateExp);
	wizard.setValue("listView",listView);
	wizard.setValue("context",context);
	var txtSaveTiddler = wizard.getElement("txtSaveTiddler");
	txtSaveTiddler.value = config.macros.importTiddlers.generateSystemServerName(wizard);
	wizard.setButtons([
		{caption: config.macros.importTiddlers.cancelLabel, tooltip: config.macros.importTiddlers.cancelPrompt, onClick: config.macros.importTiddlers.onCancel},
		{caption: config.macros.importTiddlers.importLabel, tooltip: config.macros.importTiddlers.importPrompt, onClick: config.macros.importTiddlers.doImport}]);
};
//}}}
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2010.12.15 1.9.6 allow (but ignore) type="..." syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 6, date: new Date(2010,12,15)};

config.formatters.push( {
	name: "inlineJavascript",
	match: "\\<script",
	lookahead: "\\<script(?: type=\\\"[^\\\"]*\\\")?(?: src=\\\"([^\\\"]*)\\\")?(?: label=\\\"([^\\\"]*)\\\")?(?: title=\\\"([^\\\"]*)\\\")?(?: key=\\\"([^\\\"]*)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",
	handler: function(w) {
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var src=lookaheadMatch[1];
			var label=lookaheadMatch[2];
			var tip=lookaheadMatch[3];
			var key=lookaheadMatch[4];
			var show=lookaheadMatch[5];
			var code=lookaheadMatch[6];
			if (src) { // external script library
				var script = document.createElement("script"); script.src = src;
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (code) { // inline code
				if (show) // display source in tiddler
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (label) { // create 'onclick' command link
					var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
					var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
					link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
					link.tiddler=w.tiddler;
					link.onclick=function(){
						this.bufferedHTML="";
						try{ var r=eval(this.code);
							if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
								var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
							if(this.bufferedHTML.length)
								s.innerHTML=this.bufferedHTML;
							if((typeof(r)==="string")&&r.length) {
								wikify(r,s,null,this.tiddler);
								return false;
							} else return r!==undefined?r:false;
						} catch(e){alert(e.description||e.toString());return false;}
					};
					link.setAttribute("title",tip||"");
					var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
					URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
					URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
					link.setAttribute("href",URIcode);
					link.style.cursor="pointer";
					if (key) link.accessKey=key.substr(0,1); // single character only
				}
				else { // run script immediately
					var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
					var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
					try	 { var out=eval(c); }
					catch(e) { out=e.description?e.description:e.toString(); }
					if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
				}
			}
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
	}
} )
//}}}

// // Backward-compatibility for TW2.1.x and earlier
//{{{
if (typeof(wikifyPlainText)=="undefined") window.wikifyPlainText=function(text,limit,tiddler) {
	if(limit > 0) text = text.substr(0,limit);
	var wikifier = new Wikifier(text,formatter,null,tiddler);
	return wikifier.wikifyPlain();
}
//}}}

// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
<<tabs txtMainMenuTab "Русский" "Содержимое на русском языке" MainMenu:rus "English" "Content in English" MainMenu:eng "others" "Need other languages?! Welcome!" MainMenu:others>><html><hr></html>@@color:green;font-size:.9em;[[TiddlyWiki|GettingStarted]], v.<<version>>, 2011<br>&copy; [[Jeremy Ruston|http://www.tiddlywiki.com/#JeremyRuston]], [[vmunt]]@@
[[Download area]]
[[News]]

[[Welcome...|Welcome to translation]]

[[Что тут есть]]
[[Скачивание]]
[[Новости]]
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<link rel="shortcut icon" type="image/x-icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAt1BMVEX%2F%2F%2F%2F3%2F%2F%2F39%2F%2Fv9%2F%2Fm7%2F%2Fm7%2Ffe7%2F%2Fe5vfW5v%2FW5ve93v%2Bt3v%2B11vec1v%2BtzveU1v%2BlzveMzv%2BUve97te%2BMreZ7peZrpe9are9rnOZrnN5Spe9CpfdSlN5SjN4pnPdShNY6jOYhjO86e946e9YAjPc6c9Yhe94AhPcAhO8Qe%2BYIe%2B8Ie%2BYAe%2B8Ic94Ac%2BYAc94Qa9YAa94IY9YAY94ZWsUAY9YAWtYAWs4QUsUIUsUAUs4AUsUASsUHPgRCAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAuIwAALiMBeKU%2FdgAAAJVJREFUeJx1j18LgjAUxU9uwwokIpGkh33%2Fz1RPBoWO5chMZW7L0V%2Bj7sO9cDic%2BzsUX0N%2FCYQGvR5uGNjOC%2BmGwYlM83SCnfCOqRuWRU2QXbzj6DjQGViX7%2B8Zcs1MIpu4F49QfeAgUbgozs%2B3VQu9KtrTi6ORsWF0277B1BJmnn%2BQXlUEM0JXM5QjoZa2Gpcr%2F7a9AcnhN%2FvnfMTDAAAAAElFTkSuQmCC" />
<!--}}}-->
/***
|Name|NestedSlidersPlugin|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Documentation|http://www.TiddlyTools.com/#NestedSlidersPluginInfo|
|Version|2.4.9|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|show content in nest-able sliding/floating panels, without creating separate tiddlers for each panel's content|
!!!!!Documentation
>see [[NestedSlidersPluginInfo]]
!!!!!Configuration
<<<
<<option chkFloatingSlidersAnimate>> allow floating sliders to animate when opening/closing
>Note: This setting can cause 'clipping' problems in some versions of InternetExplorer.
>In addition, for floating slider animation to occur you must also allow animation in general (see [[AdvancedOptions]]).
<<<
!!!!!Revisions
<<<
2008.11.15 - 2.4.9 in adjustNestedSlider(), don't make adjustments if panel is marked as 'undocked' (CSS class).  In onClickNestedSlider(), SHIFT-CLICK docks panel (see [[MoveablePanelPlugin]])
|please see [[NestedSlidersPluginInfo]] for additional revision details|
2005.11.03 - 1.0.0 initial public release.  Thanks to RodneyGomes, GeoffSlocock, and PaulPetterson for suggestions and experiments.
<<<
!!!!!Code
***/
//{{{
version.extensions.NestedSlidersPlugin= {major: 2, minor: 4, revision: 9, date: new Date(2008,11,15)};

// options for deferred rendering of sliders that are not initially displayed
if (config.options.chkFloatingSlidersAnimate===undefined)
	config.options.chkFloatingSlidersAnimate=false; // avoid clipping problems in IE

// default styles for 'floating' class
setStylesheet(".floatingPanel { position:absolute; z-index:10; padding:0.5em; margin:0em; \
	background-color:#eee; color:#000; border:1px solid #000; text-align:left; }","floatingPanelStylesheet");

// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}

config.formatters.push( {
	name: "nestedSliders",
	match: "\\n?\\+{3}",
	terminator: "\\s*\\={3}\\n?",
	lookahead: "\\n?\\+{3}(\\+)?(\\([^\\)]*\\))?(\\!*)?(\\^(?:[^\\^\\*\\@\\[\\>]*\\^)?)?(\\*)?(\\@)?(?:\\{\\{([\\w]+[\\s\\w]*)\\{)?(\\[[^\\]]*\\])?(\\[[^\\]]*\\])?(?:\\}{3})?(\\#[^:]*\\:)?(\\>)?(\\.\\.\\.)?\\s*",
	handler: function(w)
		{
			lookaheadRegExp = new RegExp(this.lookahead,"mg");
			lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = lookaheadRegExp.exec(w.source)
			if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
			{
				var defopen=lookaheadMatch[1];
				var cookiename=lookaheadMatch[2];
				var header=lookaheadMatch[3];
				var panelwidth=lookaheadMatch[4];
				var transient=lookaheadMatch[5];
				var hover=lookaheadMatch[6];
				var buttonClass=lookaheadMatch[7];
				var label=lookaheadMatch[8];
				var openlabel=lookaheadMatch[9];
				var panelID=lookaheadMatch[10];
				var blockquote=lookaheadMatch[11];
				var deferred=lookaheadMatch[12];

				// location for rendering button and panel
				var place=w.output;

				// default to closed, no cookie, no accesskey, no alternate text/tip
				var show="none"; var cookie=""; var key="";
				var closedtext=">"; var closedtip="";
				var openedtext="<"; var openedtip="";

				// extra "+", default to open
				if (defopen) show="block";

				// cookie, use saved open/closed state
				if (cookiename) {
					cookie=cookiename.trim().slice(1,-1);
					cookie="chkSlider"+cookie;
					if (config.options[cookie]==undefined)
						{ config.options[cookie] = (show=="block") }
					show=config.options[cookie]?"block":"none";
				}

				// parse label/tooltip/accesskey: [label=X|tooltip]
				if (label) {
					var parts=label.trim().slice(1,-1).split("|");
					closedtext=parts.shift();
					if (closedtext.substr(closedtext.length-2,1)=="=")	
						{ key=closedtext.substr(closedtext.length-1,1); closedtext=closedtext.slice(0,-2); }
					openedtext=closedtext;
					if (parts.length) closedtip=openedtip=parts.join("|");
					else { closedtip="show "+closedtext; openedtip="hide "+closedtext; }
				}

				// parse alternate label/tooltip: [label|tooltip]
				if (openlabel) {
					var parts=openlabel.trim().slice(1,-1).split("|");
					openedtext=parts.shift();
					if (parts.length) openedtip=parts.join("|");
					else openedtip="hide "+openedtext;
				}

				var title=show=='block'?openedtext:closedtext;
				var tooltip=show=='block'?openedtip:closedtip;

				// create the button
				if (header) { // use "Hn" header format instead of button/link
					var lvl=(header.length>5)?5:header.length;
					var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,buttonClass,title);
					btn.onclick=onClickNestedSlider;
					btn.setAttribute("href","javascript:;");
					btn.setAttribute("title",tooltip);
				}
				else
					var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider,buttonClass);
				btn.innerHTML=title; // enables use of HTML entities in label

				// set extra button attributes
				btn.setAttribute("closedtext",closedtext);
				btn.setAttribute("closedtip",closedtip);
				btn.setAttribute("openedtext",openedtext);
				btn.setAttribute("openedtip",openedtip);
				btn.sliderCookie = cookie; // save the cookiename (if any) in the button object
				btn.defOpen=defopen!=null; // save default open/closed state (boolean)
				btn.keyparam=key; // save the access key letter ("" if none)
				if (key.length) {
					btn.setAttribute("accessKey",key); // init access key
					btn.onfocus=function(){this.setAttribute("accessKey",this.keyparam);}; // **reclaim** access key on focus
				}
				btn.setAttribute("hover",hover?"true":"false");
				btn.onmouseover=function(ev) {
					// optional 'open on hover' handling
					if (this.getAttribute("hover")=="true" && this.sliderPanel.style.display=='none') {
						document.onclick.call(document,ev); // close transients
						onClickNestedSlider(ev); // open this slider
					}
					// mouseover on button aligns floater position with button
					if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this,this.sliderPanel);
				}

				// create slider panel
				var panelClass=panelwidth?"floatingPanel":"sliderPanel";
				if (panelID) panelID=panelID.slice(1,-1); // trim off delimiters
				var panel=createTiddlyElement(place,"div",panelID,panelClass,null);
				panel.button = btn; // so the slider panel know which button it belongs to
				btn.sliderPanel=panel; // so the button knows which slider panel it belongs to
				panel.defaultPanelWidth=(panelwidth && panelwidth.length>2)?panelwidth.slice(1,-1):"";
				panel.setAttribute("transient",transient=="*"?"true":"false");
				panel.style.display = show;
				panel.style.width=panel.defaultPanelWidth;
				panel.onmouseover=function(event) // mouseover on panel aligns floater position with button
					{ if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this.button,this); }

				// render slider (or defer until shown) 
				w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
				if ((show=="block")||!deferred) {
					// render now if panel is supposed to be shown or NOT deferred rendering
					w.subWikify(blockquote?createTiddlyElement(panel,"blockquote"):panel,this.terminator);
					// align floater position with button
					if (window.adjustSliderPos) window.adjustSliderPos(place,btn,panel);
				}
				else {
					var src = w.source.substr(w.nextMatch);
					var endpos=findMatchingDelimiter(src,"+++","===");
					panel.setAttribute("raw",src.substr(0,endpos));
					panel.setAttribute("blockquote",blockquote?"true":"false");
					panel.setAttribute("rendered","false");
					w.nextMatch += endpos+3;
					if (w.source.substr(w.nextMatch,1)=="\n") w.nextMatch++;
				}
			}
		}
	}
)

function findMatchingDelimiter(src,starttext,endtext) {
	var startpos = 0;
	var endpos = src.indexOf(endtext);
	// check for nested delimiters
	while (src.substring(startpos,endpos-1).indexOf(starttext)!=-1) {
		// count number of nested 'starts'
		var startcount=0;
		var temp = src.substring(startpos,endpos-1);
		var pos=temp.indexOf(starttext);
		while (pos!=-1)  { startcount++; pos=temp.indexOf(starttext,pos+starttext.length); }
		// set up to check for additional 'starts' after adjusting endpos
		startpos=endpos+endtext.length;
		// find endpos for corresponding number of matching 'ends'
		while (startcount && endpos!=-1) {
			endpos = src.indexOf(endtext,endpos+endtext.length);
			startcount--;
		}
	}
	return (endpos==-1)?src.length:endpos;
}
//}}}
//{{{
window.onClickNestedSlider=function(e)
{
	if (!e) var e = window.event;
	var theTarget = resolveTarget(e);
	while (theTarget && theTarget.sliderPanel==undefined) theTarget=theTarget.parentNode;
	if (!theTarget) return false;
	var theSlider = theTarget.sliderPanel;
	var isOpen = theSlider.style.display!="none";

	// if SHIFT-CLICK, dock panel first (see [[MoveablePanelPlugin]])
	if (e.shiftKey && config.macros.moveablePanel) config.macros.moveablePanel.dock(theSlider,e);

	// toggle label
	theTarget.innerHTML=isOpen?theTarget.getAttribute("closedText"):theTarget.getAttribute("openedText");
	// toggle tooltip
	theTarget.setAttribute("title",isOpen?theTarget.getAttribute("closedTip"):theTarget.getAttribute("openedTip"));

	// deferred rendering (if needed)
	if (theSlider.getAttribute("rendered")=="false") {
		var place=theSlider;
		if (theSlider.getAttribute("blockquote")=="true")
			place=createTiddlyElement(place,"blockquote");
		wikify(theSlider.getAttribute("raw"),place);
		theSlider.setAttribute("rendered","true");
	}

	// show/hide the slider
	if(config.options.chkAnimate && (!hasClass(theSlider,'floatingPanel') || config.options.chkFloatingSlidersAnimate))
		anim.startAnimating(new Slider(theSlider,!isOpen,e.shiftKey || e.altKey,"none"));
	else
		theSlider.style.display = isOpen ? "none" : "block";

	// reset to default width (might have been changed via plugin code)
	theSlider.style.width=theSlider.defaultPanelWidth;

	// align floater panel position with target button
	if (!isOpen && window.adjustSliderPos) window.adjustSliderPos(theSlider.parentNode,theTarget,theSlider);

	// if showing panel, set focus to first 'focus-able' element in panel
	if (theSlider.style.display!="none") {
		var ctrls=theSlider.getElementsByTagName("*");
		for (var c=0; c<ctrls.length; c++) {
			var t=ctrls[c].tagName.toLowerCase();
			if ((t=="input" && ctrls[c].type!="hidden") || t=="textarea" || t=="select")
				{ try{ ctrls[c].focus(); } catch(err){;} break; }
		}
	}
	var cookie=theTarget.sliderCookie;
	if (cookie && cookie.length) {
		config.options[cookie]=!isOpen;
		if (config.options[cookie]!=theTarget.defOpen) window.saveOptionCookie(cookie);
		else window.removeCookie(cookie); // remove cookie if slider is in default display state
	}

	// prevent SHIFT-CLICK from being processed by browser (opens blank window... yuck!)
	// prevent clicks *within* a slider button from being processed by browser
	// but allow plain click to bubble up to page background (to close transients, if any)
	if (e.shiftKey || theTarget!=resolveTarget(e))
		{ e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); }
	Popup.remove(); // close open popup (if any)
	return false;
}
//}}}
//{{{
// click in document background closes transient panels 
document.nestedSliders_savedOnClick=document.onclick;
document.onclick=function(ev) { if (!ev) var ev=window.event; var target=resolveTarget(ev);

	if (document.nestedSliders_savedOnClick)
		var retval=document.nestedSliders_savedOnClick.apply(this,arguments);
	// if click was inside a popup... leave transient panels alone
	var p=target; while (p) if (hasClass(p,"popup")) break; else p=p.parentNode;
	if (p) return retval;
	// if click was inside transient panel (or something contained by a transient panel), leave it alone
	var p=target; while (p) {
		if ((hasClass(p,"floatingPanel")||hasClass(p,"sliderPanel"))&&p.getAttribute("transient")=="true") break;
		p=p.parentNode;
	}
	if (p) return retval;
	// otherwise, find and close all transient panels...
	var all=document.all?document.all:document.getElementsByTagName("DIV");
	for (var i=0; i<all.length; i++) {
		 // if it is not a transient panel, or the click was on the button that opened this panel, don't close it.
		if (all[i].getAttribute("transient")!="true" || all[i].button==target) continue;
		// otherwise, if the panel is currently visible, close it by clicking it's button
		if (all[i].style.display!="none") window.onClickNestedSlider({target:all[i].button})
		if (!hasClass(all[i],"floatingPanel")&&!hasClass(all[i],"sliderPanel")) all[i].style.display="none";
	}
	return retval;
};
//}}}
//{{{
// adjust floating panel position based on button position
if (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel) {
	if (hasClass(panel,"floatingPanel") && !hasClass(panel,"undocked")) {
		// see [[MoveablePanelPlugin]] for use of 'undocked'
		var rightEdge=document.body.offsetWidth-1;
		var panelWidth=panel.offsetWidth;
		var left=0;
		var top=btn.offsetHeight; 
		if (place.style.position=="relative" && findPosX(btn)+panelWidth>rightEdge) {
			left-=findPosX(btn)+panelWidth-rightEdge; // shift panel relative to button
			if (findPosX(btn)+left<0) left=-findPosX(btn); // stay within left edge
		}
		if (place.style.position!="relative") {
			var left=findPosX(btn);
			var top=findPosY(btn)+btn.offsetHeight;
			var p=place; while (p && !hasClass(p,'floatingPanel')) p=p.parentNode;
			if (p) { left-=findPosX(p); top-=findPosY(p); }
			if (left+panelWidth>rightEdge) left=rightEdge-panelWidth;
			if (left<0) left=0;
		}
		panel.style.left=left+"px"; panel.style.top=top+"px";
	}
}
//}}}
//{{{
// TW2.1 and earlier:
// hijack Slider stop handler so overflow is visible after animation has completed
Slider.prototype.coreStop = Slider.prototype.stop;
Slider.prototype.stop = function()
	{ this.coreStop.apply(this,arguments); this.element.style.overflow = "visible"; }

// TW2.2+
// hijack Morpher stop handler so sliderPanel/floatingPanel overflow is visible after animation has completed
if (version.major+.1*version.minor+.01*version.revision>=2.2) {
	Morpher.prototype.coreStop = Morpher.prototype.stop;
	Morpher.prototype.stop = function() {
		this.coreStop.apply(this,arguments);
		var e=this.element;
		if (hasClass(e,"sliderPanel")||hasClass(e,"floatingPanel")) {
			// adjust panel overflow and position after animation
			e.style.overflow = "visible";
			if (window.adjustSliderPos) window.adjustSliderPos(e.parentNode,e.button,e);
		}
	};
}
//}}}
<html>
<div style="float:left"><h1>July 5, 2011</h1></div>
<p>Slightly changes MainMenu structure, rewrite <a class="tiddlyLink tiddlyLinkExisting" href="javascript:;" onclick="onClickTiddlerLink(event)" title="Download area tiddler" tiddlyLink="Download area">Download area</a> tiddler <span class="remark">(for more transparent understanding public content of this site)</span>. Expands quantity of matherials for downloading.</p>
</html>
[[Настройки интерфейса|SystemSettings]] для изменения вида TiddlyWiki, которые сохраняются программой просмотра

Ваше имя для подписывания правок. Можете записать его как WikiWord (к примеру, JoeBloggs)

<<option txtUserName>>
<<option chkSaveBackups>> Резервная копия
<<option chkAutoSave>> Автосохранение
<<option chkRegExpSearch>> Регулярные выражения
<<option chkCaseSensitiveSearch>> Чувствительность к регистру
<<option chkAnimate>> Анимация

----
[[Начальные настройки|GettingStarted]]
[[Расширенные настройки|AdvancedOptions]]
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::HeaderTop]] [[ColorPalette::HeaderBottom]]'>
	<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 class="topSearch"><span macro='search ""'></span></div>
</div>
<div id='sidebar'>
	<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
	<div id='sidebarOptions' refresh='content' force='true' tiddler='SideBarOptions'></div>
	<!-- vmunt: Tabs slider inserted to SideBarOptions -->
	<!-- <div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div> -->
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<script>
// Source from http://twhelp.tiddlyspot.com/
// hijack store.setDirty() function (force display update after saving the file)
if (TiddlyWiki.prototype.showUnsavedHijack_setDirty==undefined) {
	TiddlyWiki.prototype.showUnsavedHijack_setDirty=TiddlyWiki.prototype.setDirty;
	TiddlyWiki.prototype.setDirty = function(flag) {
		var refresh=this.isDirty() && !flag; // 'dirty' to 'clean', force a refresh...
		this.showUnsavedHijack_setDirty(flag); // but change the flag first.
		if (refresh) {
			config.options.lastSaved=new Date(); // remember save time
			refreshDisplay(); // finally, update the display
		}
	}
}
// get the tiddlers sorted by date - INCLUDE ALL TIDDLERS (even hidden ones!!)
var tiddlers=store.getTiddlers("modified");

if (config.options.lastSaved==undefined)
	config.options.lastSaved=tiddlers[tiddlers.length-1].modified;

// If no tiddlers have changed, DO NOTHING.
if (tiddlers[tiddlers.length-1].modified<=config.options.lastSaved) return;

// find the unsaved tiddlers
var count=0; var list="";
var item='[[%0 (%1)|%0]]<br>';
for (var i=tiddlers.length-1; i>=0; i--) {
	if (tiddlers[i].modified<=config.options.lastSaved) break;
	list+=item.format([tiddlers[i].title, tiddlers[i].modified.formatString('0hh:0mm')]);
	count++;
}
// display the dropdown list wrapped in a slider
var out='';
var label='Изменено: %0 замет%1 »'.format([count,count==1?'ка':count<5?'ки':'ок'])
out+='{{remark{+++(_Unsaved)['+label+'|показать/скрыть все изменённые заметки]...';
out+=list;
// out+='<'+'script>place.lastChild.style.fontWeight="normal"</'+'script>';
out+='===}}}';
return out;
</script>
<<newTiddler>><<permaview>><<tiddler ShowUnsavedChangesScript>><<saveChanges>><<closeAll>><<slider chkSliderOptionsPanel OptionsPanel "настройки »" "Изменение настроек TiddlyWiki">> <<slider chkSliderHistoryPanel SideBarTabs "история »" "Панель истории изменений и прочих списков заметок">>
всё совершенно бесплатно!
vmunt & TiddlyWiki
http://vmunt.site/
/***
|!Дата|!Изменение|
|10.07.2011|Перенёс определение высот тегов BODY и HTML {{remark{(а заодно и тегов #pageFrame и #contentWrapper)}}} в заметку [[MarkupPostHead]], которая будет распространяться вместе с [[шаблоном страницы|PageTemplate]] с подвалом {{remark{(ибо, как оказалось, в IE8 height:100% размножается кратно {{remark{(в IE7 и других браузерах этой проблемы нет)}}})}}}. Завести стили прямо в [[шаблон страницы|PageTemplate]] с подвалом не удалось, ибо тот же IE8 переопределение стилей внутри тега BODY уже не воспринимает, а лепить модуль исключительно для стилевой поддержки пока не очень хочется. Вся эта возня, собственно, затеяна для того, чтобы сделать универсальную {{remark{(подходящую для всех моих шаблонов)}}} стилевую таблицу|
|18.06.2011|Сделал стилевую поддержку для заголовков второго-пятого уровней в таблицах {{remark{(сама поддержка таких заголовков включается плагином TableHeadersPlugin)}}}|
|08.05.2011|Внутри displayArea {{remark{(в заметках)}}} для гиперссылок поставлен запрет переноса на другую строку {{remark{(чтобы не разрывать ссылку на несколько строк, ибо часто некрасиво получается)}}}|
|20.03.2011|Сделан левый отступ для sliderPanel. Теперь вложенные sliderPanel имеют визуальную ступенчатую структуру |
|02.03.2011|Добавлены стили перекрёстных ссылок в заголовках {{remark{(для лучшего распознавания сдвигающихся/раздвигающихся текстов)}}} |
|02.02.2011|Добавлены стили для оформления подвала {{remark{(pageFrame, pageFooter, pageFooterLimiter)}}} |
|31.12.2011|Добавлен стиль {{{.viewer TH A}}} для установления цвета ссылок в заголовках таблиц с указанием цвета текста из параметра [[ColorPalette::TableHeaderRef|ColorPalette]] |
|03.11.2010|Добавлен стиль {{{.viewer TH}}} с указанием параметрических цветов текста [[ColorPalette::TableHeader|ColorPalette]] и фона [[ColorPalette::TableHeaderBg|ColorPalette]], плюс тег {{{.viewer PRE}}} тоже сделан параметрическим {{remark{(введены параметры [[ColorPalette::PreBg|ColorPalette]] и [[ColorPalette::PreBorder|ColorPalette]])}}}|
|15.10.2010|К стилю {{{tabContents}}} добавлено свойство {{{overflow:hidden}}} для того, чтобы длинные слова не вылазили за рамку истории|
|14.10.2010|Введён стиль ячейки {{{TD.left}}} с выравниванием по левому краю и абзацным выступом и определены стили {{{TR.oddRow}}} и {{{TR.evenRow}}}|
|20.09.2010|Изменил цвет внутренних ссылок TiddlyWiki, чтобы они чуток отличались цветом от внешних ссылок. Удобно при импортировании текстов с других сайтов, чтобы отличать ссылки, которые уже исправлены на ссылки внутри TiddlyWiki, и которые ещё нет.|
|16.09.2010|Присваивание специфических для {{{DIV.pic}}} параметров {{remark{(float:left в частности)}}} {{{TD.pic}}}-у решено признать неудачной идеей...|
|06.09.2010|Чуток приподнял subtitle в заголовке, чтобы текст смотрелся посередине заголовка {{remark{(ну и при уменьшении ширины экрана чтобы меньше с поиском пересекалось)}}}|
|30.08.2010|Изменена длина строки поиска в заголовке {{remark{(стиль DIV.topSearch)}}}|
|24.08.2010|Добавлен стиль {{{TD.pic}}} и {{{DIV.pic}}} для вставок картинок и оформления галерей|
|20.08.2010|Включена заметная тень заголовка {{remark{(.headerShadow left&top)}}}|
|03.08.2010|Изменено расположение блока меток, для этого изменены стили {{{.tagging}}} и {{{.tagged}}}|
|02.08.2010|Включено выравнивание текста в заметках по ширине {{remark{(стиль .viewer)}}}. Оставлено центрирование заголовков таблиц {{remark{(стиль .viewer TH)}}}. Сделан отступ от правого края списков в истории {{remark{(стили #sidebar LI и #sidebar LI.listTitle)}}}. Убран устаревший стиль {{{LI.listLink}}}|
***/
/*{{{*/
H1, H2, H3, H4, H5, H6 { font-style:italic;padding:0px }
H1, H2 {  border-bottom:2px solid lightgray;margin-bottom:3px;margin-top:6px }
H3, H4, H5, H6 {  border-bottom:1px solid lightgray;margin-bottom:2px;margin-top:3px }
H1 A { color:#620 } /* #841 */
H2 A { color:[[ColorPalette::SecondaryDark]] }
H3 A { color:#861 }
H4 A { color:#771 }
H5 A { color:#691 }

P { margin:5px 0px;padding:0px;text-align:justify;text-indent:25px }
.accent { color:#044;font-style:oblique;font-weight:bold } /* Выделение, акцент на слово или на фразу */
.alert { color:red } /* Места, требующие особого внимания */
.ask { font-style:italic;font-weight:bold;margin-bottom:0px;margin-top:10px } /* Абзац вопроса при интервью */
.author { color:#444;font-style:italic;text-align:right } /* Автор публикации */
.intro { color:#444;font-style:italic;text-align:justify } /* Вступление или предисловие к статье */
.remark { color:#800;font-size:.9em;font-style:italic;margin-bottom:6px;margin-top:6px } /* Примечания переводчика или мои */
.source { color:#080;font-style:italic;text-align:right } /* Ссылка на источник публикации */
.trans,
.titled { color:#060;font-style:italic;font-weight:bold } /* Слово, имеющее всплывающую расшифровку */
LI { margin:4px 0px 4px 25px;text-align:justify }
SAMP { color:blue }
CITE { color:#006 }
CODE {}
.viewer PRE { background-color:[[ColorPalette::PreBg]];border:1px solid [[ColorPalette::PreBorder]];margin:6px 4px }
DIV.cite { border:1px solid #666 }
DIV.cite P { color:#004;font-style:italic;margin:4px 25px 4px 25px;text-align:left;text-indent:0px } /* Цитата, взятая из какого-либо источника */
.txtOptionInput { width:11.5em } /* Длина строк ввода (например, имени пользователя) */
.viewer BLOCKQUOTE,
BLOCKQUOTE { border-bottom:1px solid #555;border-top:1px solid #555;border-left:3px solid #555;margin:10px 25px;margin-right:0px;padding:5px 20px;padding-right:0px } /* Цитата HTML */
BLOCKQUOTE P { color:#004;font-size:0.9em;font-style:italic;margin:2px 0px;text-indent:0px }
BLOCKQUOTE LI { font-size:0.9em;font-style:italic;margin:4px 0px;text-align:justify }
DIV.tiddler { padding-top:6px }
DIV.toolbar { margin-top:4px }
DIV.toolbar A {  } /* white-space:nowrap */
DIV.topSearch INPUT.txtOptionInput { width:18em } /* Длина строки поиска в заголовке */
DIV.topSearch { position:absolute;right:12px;top:21px } /* Специальный класс для строки поиска в заголовке (используется в PageTemplate */
DIV.topSearch A,
DIV.topSearch A:visited { border:none;color:white }
DIV.topSearch A:hover { color:#FFEE88 }
DIV.topSearch INPUT { margin-left:.5em }
A.tiddlyLink { color:#064;padding-left:1px;padding-right:1px }
A.tiddlyLink:hover { background-color:#064;color:#fff }
DIV.sliderPanel { padding-left:10px }
#sidebarOptions .sliderPanel A.tiddlyLink,
#sidebarOptions .sliderPanel A.tabSelected,
#sidebarOptions .sliderPanel A.tabUnselected { color:#042;padding-left:1px;padding-right:1px }
#sidebarOptions .sliderPanel A.tiddlyLink:hover,
#sidebarOptions .sliderPanel A.tabSelected:hover,
#sidebarOptions .sliderPanel A.tabUnselected:hover { background-color:#042;color:#fff }
#sidebarOptions A { margin-left:0px;margin-right:0px;padding-left:.5em;padding-right:.5em }

.quickEdit A:hover { color:white } /* !!! new for toolbar buttons */
.viewer TABLE { margin:5px 4px }
.viewer TH { background-color:[[ColorPalette::TableHeaderBg]];color:[[ColorPalette::TableHeader]] }
.viewer TH A { color:[[ColorPalette::TableHeaderRef]] }
.viewer TH A:hover { background-color:[[ColorPalette::TableHeaderRef]];color:[[ColorPalette::TableHeaderBg]] }
.viewer TH.th2 { background-color:[[ColorPalette::TableHeader2Bg]];color:[[ColorPalette::TableHeader2]] }
.viewer TH.th3 { background-color:[[ColorPalette::TableHeader3Bg]];color:[[ColorPalette::TableHeader3]] }
.viewer TH.th4 { background-color:[[ColorPalette::TableHeader4Bg]];color:[[ColorPalette::TableHeader4]] }
.viewer TH.th5 { background-color:[[ColorPalette::TableHeader5Bg]];color:[[ColorPalette::TableHeader5]] }
.viewer TH.th2 A { color:[[ColorPalette::TableHeader2Ref]] }
.viewer TH.th3 A { color:[[ColorPalette::TableHeader3Ref]] }
.viewer TH.th4 A { color:[[ColorPalette::TableHeader4Ref]] }
.viewer TH.th5 A { color:[[ColorPalette::TableHeader5Ref]] }
.viewer TH.th2 A:hover { background-color:[[ColorPalette::TableHeader2Ref]];color:[[ColorPalette::TableHeader2Bg]] }
.viewer TH.th3 A:hover { background-color:[[ColorPalette::TableHeader3Ref]];color:[[ColorPalette::TableHeader3Bg]] }
.viewer TH.th4 A:hover { background-color:[[ColorPalette::TableHeader4Ref]];color:[[ColorPalette::TableHeader4Bg]] }
.viewer TH.th5 A:hover { background-color:[[ColorPalette::TableHeader5Ref]];color:[[ColorPalette::TableHeader5Bg]] }

TR.info { height:1% } /* Непустые строки в анкетах. Используется для установления минимально необходимой высоты, чтобы пустая строка заполнила всё пространство при объединении ячеек по строкам */
TD.ask { font-style:normal;text-align:right }
TD.odd,
TR.odd,
TR.oddRow { background-color:#fff } /* В коде TiddlyWiki перепут чётных и нечётных строк */
TD.even, TD.evn,
TR.even, TR.evn,
TR.evenRow { background-color:#EEEEEE }
TD.num { padding:0px 5px;text-align:right } /* Колонка нумерации */
TD.mark { background-color:#afa;text-align:center } /* Выделенная ячейка расписания */
TD.mid, TD.midb { text-align:center } /* Ячейки с выравниванием по центру */
TD.midb { font-weight:bold }
TD.left { padding:1em;text-align:left;text-indent:-1em } /* Ячейки с выравниванием по левому краю и абзацным выступом */
TD.pic,
DIV.pic { border:1px solid #cc4;padding:10px;text-align:center;text-size:.8em;width:150px }
DIV.pic { float:left;margin:0px 10px 10px 0px }
DIV.cite { border:1px solid #666 }
DIV.cite P { color:#004;font-style:italic;margin:4px 25px 4px 25px;text-align:left;text-indent:0px } /* Цитата, взятая из какого-либо источника */

/* Оформление для таблиц назначений контактов в разъёмах */
TABLE.pinLayout { border:0px solid black;border-collapse:collapse }
TABLE.pinLayout TR { border:none }
TD.ld { border:none;font-size:6pt;padding:0px 6px 0px 2px;text-align:right } /* Описание слева */
TD.rd { border:none;font-size:6pt;padding:0px 2px 0px 6px;text-align:left } /* Описание справа */
TD.pin { border:1px solid darkblue;height:10px;width:10px;padding:0px } /* Сам контакт */
TD.sp { border:none } /* пустые места, обрамление разъёма */

/* Переназначение встроенных стилей TiddlyWiki */
.viewer { border-top:1px solid gray;padding-top:5px;text-align:justify }
.viewer TABLE { margin-left:4px;margin-right:4px }
.viewer TH { text-align:center }
.viewer UL,
.viewer OL { margin-left:0px;margin-bottom:.5em;margin-top:.5em;padding-left:0px }
.viewer .listTitle { margin-left:0px }
.headerForeground,
.headerShadow { padding:1em 0em 1em 1em }
.headerShadow { left:2px;top:2px } /* Отступ тени в заголовке */
.siteTitle { font-size:2em }
.siteSubtitle { font-size:1em;font-style:italic;margin-left:.5em;vertical-align:.25em }

#pageFooterLimiter { height:2.3em }
#footerPanel { color:[[ColorPalette::FooterText]];background-color:[[ColorPalette::FooterTop]];border:1px solid [[ColorPalette::FooterBorder]];margin:-2.3em 1em 0px 15.8em;padding:.5em 1em .5em }
#footerPanel DIV { margin:0px;padding:0px }
#footerPanel A { color:[[ColorPalette::FooterRef]];text-decoration:none }
#footerPanel A:hover { background-color:[[ColorPalette::FooterRef]];color:[[ColorPalette::FooterTop]];text-decoration:none }
#footer { float:left;font-size:.9em }
#footerRight { float:right;font-size:.9em }

#displayArea { margin:1em 1em 0 15.8em }
#displayArea A { white-space:nowrap }
#sidebar { float:left;left:0;right:auto;padding-left: 0.5em;padding-right: 0.5em;top:auto;width:16em }
#mainMenu { background-color:#fff;border:1px solid #ccc;margin-left:0px;margin-top:1em;padding:.5em;position:static;text-align:right;width:13.35em } /* 13.5 */
.tiddler { background-color:#fff;border:1px solid #ccc;margin:5px 0;padding:10px;position:auto }
#sidebarOptions .sliderPanel { background-color:#ddd;font-size:1em;margin-left:0px;margin-right:0px }
#sidebarOptions .sliderPanel .tabSelected,
#sidebarOptions .sliderPanel .tabUnselected { border-left:1px solid #aaa;border-right:1px solid #aaa;border-top:1px solid #aaa;font-weight:normal;margin:0px 1px;padding:2px 1px 0px 2px }
.tabUnselected { background-color:#c8c8c8 } /* Заголовок неактивной закладки в боковой панели истории */
#sidebarOptions .sliderPanel A.tiddlyLinkNonExisting { font-weight:normal }
#sidebarOptions .sliderPanel A.tiddlyLinkNonExisting.shadow { font-weight:bold }
#sidebar LI { padding-left:1em;text-align:left;text-indent:-1em }
#sidebar LI.listTitle { padding-left:0px;text-indent:0px }

.tabset { padding-top:.5em }
.tabContents { overflow:hidden }
.tabSetWrapper LI,
.tabContents LI { margin:0px } /* Элементы списка в боковых меню (история, прочее) */
.subtitle { margin-top:4px }
.editor { margin-bottom:2px;margin-top:2px }
.annotation { margin:4px -2px 4px 0px }
.tagging, .tagged { float:right;margin:5px 0px 0px;padding:0 }
.tagging UL,
.tagged UL { margin:0px }
.tagging LI,
.tagged LI { float:left;margin-left:0px;padding-left:.5em;padding-right:.5em }
/*}}}*/
chkAllowLinksFromShadowTiddlers: false
chkDisableNonExistingWikiLinks: true
chkDisableWikiLinks: true
chkInsertTabs: true
chkToggleLinks: false
txtDisableWikiLinksList: 
txtDisableWikiLinksTag: excludeWikiWords
/***
|''Name:''|TableHeadersPlugin|
|''Version:''|0.1|
|''Description:''|Plugin turn on supports TABLE TH cells with styles th2, th3, th4... for cells with "!!header text", "!!!header text", "!!!header text" and so on|
|''Описание:''|Модуль включает поддержку заголовков таблицы второго, третьего и прочих уровней добавлением стилей th2, th3, th4 и т.д.|
|''CoreVersion:''|2.6.x|
|''Version comment:''|Tested on v.2.6.2|
|''Date:''|2011|
|''Author:''|vmunt|
|''Source:''|http://vmunt.site/tw|
|''License:''|BSD open source license|
***/
//{{{
for(var n=0; n<config.formatters.length; n++) {
	if (config.formatters[n].name=='table') {
		config.formatters[n].oldRowHandler = config.formatters[n].rowHandler;
		config.formatters[n].rowHandler = function(w,e,prevColumns) {
			var col = 0;
			var colSpanCount = 1;
			var prevCell = null;
			this.cellRegExp.lastIndex = w.nextMatch;
			var cellMatch = this.cellRegExp.exec(w.source);
			while(cellMatch && cellMatch.index == w.nextMatch) {
				if(cellMatch[1] == "~") {
					// Rowspan
					var last = prevColumns[col];
					if(last) {
						last.rowSpanCount++;
						last.element.setAttribute("rowspan",last.rowSpanCount);
						last.element.setAttribute("rowSpan",last.rowSpanCount); // Needed for IE
						last.element.valign = "center";
						if(colSpanCount > 1) {
							last.element.setAttribute("colspan",colSpanCount);
							last.element.setAttribute("colSpan",colSpanCount); // Needed for IE
							colSpanCount = 1;
						}
					}
					w.nextMatch = this.cellRegExp.lastIndex-1;
				} else if(cellMatch[1] == ">") {
					// Colspan
					colSpanCount++;
					w.nextMatch = this.cellRegExp.lastIndex-1;
				} else if(cellMatch[2]) {
					// End of row
					if(prevCell && colSpanCount > 1) {
						prevCell.setAttribute("colspan",colSpanCount);
						prevCell.setAttribute("colSpan",colSpanCount); // Needed for IE
					}
					w.nextMatch = this.cellRegExp.lastIndex;
					break;
				} else {
					// Cell
					w.nextMatch++;
					var styles = config.formatterHelpers.inlineCssHelper(w);
					var spaceLeft = false;
					var chr = w.source.substr(w.nextMatch,1);
					while(chr == " ") {
						spaceLeft = true;
						w.nextMatch++;
						chr = w.source.substr(w.nextMatch,1);
					}
					var cell;
					if(chr == "!") {
						w.nextMatch++;
						// vmunt code: insert TH with thN for !!head, !!!head and so on
						var thLevel = 1;
						while((chr=w.source.substr(w.nextMatch,1))== "!") {
							thLevel++;
							w.nextMatch++;
						}
						if(thLevel==1)
							cell = createTiddlyElement(e,"th");
						else
							cell = createTiddlyElement(e,"th",null,'th'+thLevel);
						// vmunt code: end
					} else {
						cell = createTiddlyElement(e,"td");
					}
					prevCell = cell;
					prevColumns[col] = {rowSpanCount:1,element:cell};
					if(colSpanCount > 1) {
						cell.setAttribute("colspan",colSpanCount);
						cell.setAttribute("colSpan",colSpanCount); // Needed for IE
						colSpanCount = 1;
					}
					config.formatterHelpers.applyCssHelper(cell,styles);
					w.subWikifyTerm(cell,this.cellTermRegExp);
					if(w.matchText.substr(w.matchText.length-2,1) == " ") // spaceRight
						cell.align = spaceLeft ? "center" : "left";
					else if(spaceLeft)
						cell.align = "right";
					w.nextMatch--;
				}
				col++;
				this.cellRegExp.lastIndex = w.nextMatch;
				cellMatch = this.cellRegExp.exec(w.source);
			}
		}
	}
	break;
}
//}}}
/***
|''Name:''|TiddlyWiki:rus|
|''Version:''|0.9.7|
|''Description:''|TiddlyWiki russian interface plugin. Supports core up to 2.6.2|
|''Описание:''|Русификация TiddlyWiki. Поддерживает ядро до 2.6.2 включительно|
|''CoreVersion:''|2.6.x|
|''Version comment:''|Tested on v.2.6.0 and 2.6.1|
|''Date:''|2010|
|''Author:''|vmunt|
|''Source:''|http://vmunt.site/tw|
|''License:''|BSD open source license|
|''Idea:''|Глеб Тржемецкий (Gleb Trzhemetski), http://www.glebsite.ru|
***/
//{{{
//-- Строки для перевода
// Строки в "двойных кавычках" должны быть переведены; строки в 'одиночных кавычках' должны быть оставлены как есть

merge(config.tasks,{
	save: {text: "сохранить", tooltip: "Сохранить Ваши изменения в эту TiddlyWiki", action: saveChanges},
	sync: {text: "синхронизация", tooltip: "Синхронизировать изменения с другим файлом или сервером TiddlyWiki", content: '<<sync>>'},
	importTask: {text: "импорт", tooltip: "Импортировать заметки и модули из другого файла или сервера TiddlyWiki", content: '<<importTiddlers>>'},
	tweak: {text: "настройка", tooltip: "Подстроить появление и поведение TiddlyWiki", content: '<<options>>'},
	upgrade: {text: "обновление", tooltip: "Обновить код ядра TiddlyWiki", content: '<<upgrade>>'},
	plugins: {text: "модули", tooltip: "Управление встроенными модулями", content: '<<plugins>>'} });

// Options that can be set in the options panel and/or cookies
merge(config.optionsDesc,{
	txtUserName: "Имя пользователя для подписывания Ваших правок",
	chkRegExpSearch: "Разрешить регулярные выражения при поиске",
	chkCaseSensitiveSearch: "Регистро-зависимый поиск",
	chkIncrementalSearch: "Последовательный поиск слово-за-словом",
	chkAnimate: "Разрешить анимацию",
	chkSaveBackups: "Сохранить старую копию при сохранении изменений",
	chkAutoSave: "Автоматическое сохранение изменений",
	chkGenerateAnRssFeed: "Генерировать RSS-ленту при сохранении изменений",
	chkSaveEmptyTemplate: "Генерировать пустой шаблон при сохранении изменений",
	chkOpenInNewWindow: "Открывать внешние ссылки в новом окне",
	chkToggleLinks: "Нажатие на ссылках для открытия заметок также и закрывает их",
	chkHttpReadOnly: "Скрывать возможности редактирования при обращении через протокол HTTP",
	chkForceMinorUpdate: "Не обновлять автора изменений и дату редактирования заметок",
	chkConfirmDelete: "Спрашивать подтверждение при удалении заметок",
	chkInsertTabs: "Использовать клавишу табуляции для вставления символа табуляции вместо перехода по полям",
	txtBackupFolder: "Имя папки для резервных копий",
	txtMaxEditRows: "Максимальное количество строк в окне редактирования",
	txtTheme: "Имя темы для использования",
	txtFileSystemCharSet: "Кодировка символов в файле TiddlyWiki для сохранения изменений (только для Firefox/Mozilla)" });

merge(config.messages,{
	customConfigError: "Не удалось загрузить модуль. Подробнее смотрите в PluginManager",
	pluginError: "Ошибка: %0",
	pluginDisabled: "Не выполнено в связи с запретом, установленным меткой 'systemConfigDisable'",
	pluginForced: "Executed because forced via 'systemConfigForce' tag",
	pluginVersionError: "Не выполнено, так как этот модуль сделан для более новой версии TiddlyWiki",
	nothingSelected: "Ничего не выбрано. Вы должны сначала выбрать один или несколько элементов",
	savedSnapshotError: "Похоже, что эта TiddlyWiki была сохранена с ошибкой. Обратитесь к http://www.tiddlywiki.com/#Download за более детальной информацией",
	subtitleUnknown: "(неизвестно)",
	undefinedTiddlerToolTip: "Заметка '%0' пока не создана",
	shadowedTiddlerToolTip: "Заметка '%0' пока не создана, но она имеет предопределённое служебное значение",
	tiddlerLinkTooltip: "%0 - %1, %2",
	externalLinkTooltip: "Внешняя ссылка на %0",
	noTags: "Нет помеченных заметок",
	notFileUrlError: "Вам нужно сначала сохранить эту TiddlyWiki в файл, прежде чем Вы сможете сохранять изменения",
	cantSaveError: "Сохранить изменения невозможно. Возможные причины включают:\n- Ваша программа просмотра не поддерживает сохранение (Firefox, Internet Explorer, Safari и Opera все работают, но только тогда, когда правильно настроены)\n- путь к файлу TiddlyWiki содержит запрещённые символы\n- файл TiddlyWiki был перемещён, удалён или переименован",
	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: "ВНИМАНИЕ! В TiddlyWiki есть несохранённые изменения\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' не может быть изменено",
	loadingMissingTiddler: "Пытаюсь восстановить заметку '%0' с сервера '%1' по адресу:\n\n'%2' в 'рабочем пространстве' '%3'",
	upgradeDone: "Обновление до версии %0 завершено\n\nНажмите 'OK' для перезагрузки новой обновлённой TiddlyWiki",
	invalidCookie: "Испорченная cookie-переменная '%0'"}); // v.2.6.1

merge(config.messages.messageClose,{text: "[X]", tooltip: "закрыть эту область сообщения"});

config.messages.backstage = {
	open: {text: "обслуживание", tooltip: "Откройте меню обслуживания для проведения сервисных задач"},
	close: {text: "закрыть", tooltip: "Закрытие меню обслуживания"},
	prompt: "Ослуживание: ",
	decal: {edit: {text: "правка", tooltip: "Правка заметки '%0'"}}};

config.messages.listView = {
	tiddlerTooltip: "Щёлкните тут для просмотра полного текста этой заметки",
	previewUnavailable: "(предварительный просмотр недоступен)"};

config.messages.dates.months = ["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
config.messages.dates.days = ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"];
config.messages.dates.shortMonths = ["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"];
config.messages.dates.shortDays = ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"];
// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"
config.messages.dates.daySuffixes = [
	"-е","-е","-е","-е","-е","-е","-е","-е","-е","-е",
	"-е","-е","-е","-е","-е","-е","-е","-е","-е","-е",
	"-е","-е","-е","-е","-е","-е","-е","-е","-е","-е",
	"-е"];
config.messages.dates.am = "утра";
config.messages.dates.pm = "дня";

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

merge(config.views.wikified,{
	defaultText: "Заметка '%0' пока не создана. Создайте её двойным щелчком мышки",
	defaultModifier: "(отсутствует)",
	shadowModifier: "(встроенная служебная заметка)",
	dateFormat: "DD.0MM.YYYY",
	createdPrompt: "создана"});

merge(config.views.editor,{
	tagPrompt: "Введите метки, разделённые пробелами, в случае необходимости [[используйте двойные квадратные скобки|use double square brackets]], или добавьте существующие метки",
	defaultText: "Введите текст для '%0'"});

merge(config.views.editor.tagChooser,{
	text: "метки",
	tooltip: "Выберите существующую метку для добавления к этой заметке",
	popupNone: "Нет ни одной метки",
	tagTooltip: "Добавьте метку для '%0'"});

merge(config.messages,{
	sizeTemplates: [
		{unit: 1024*1024*1024, template: "%0\u00a0 Gb"},
		{unit: 1024*1024, template: "%0\u00a0 Mb"},
		{unit: 1024, template: "%0\u00a0 Kb"},
		{unit: 1, template: "%0\u00a0 b"}]});

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

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

merge(config.macros.timeline,{
	dateFormat: "DD.0MM.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 = "Служебные заметки";
config.macros.list.touched.prompt = "Заметки, которые были изменены";

merge(config.macros.closeAll,{
	label: "закрыть всё",
	prompt: "Закрыть все отображённые заметки (за исключением заметок в состоянии правки)"});

merge(config.macros.permaview,{
	label: "прямая ссылка",
	prompt: "Создание адресной строки для открытия TiddlyWiki с текущими открытыми заметками"});

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

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

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

merge(config.macros.options,{
	wizardTitle: "Расширенные пункты настройки",
	step1Title: "Эти настройки Ваша программа просмотра сохраняет с помощью cookies",
	step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Показать настройки без описания</input>",
	unknownDescription: "//(unknown)//",
	listViewTemplate: {
		columns: [
			{name: 'Option', field: 'option', title: "Возможности", type: 'String'},
			{name: 'Description', field: 'description', title: "Описание", type: 'WikiText'},
			{name: 'Name', field: 'name', title: "Имя", type: 'String'}],
		rowClasses: [{className: 'lowlight', field: 'lowlight'} ]}
	});

merge(config.macros.plugins,{
	wizardTitle: "Управление модулями",
	step1Title: "Подключенные модули",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	skippedText: "(Этот модуль не выполняется, так как после его добавления ещё не было перезапуска TiddlyWiki)",
	noPluginText: "Нет установленных модулей",
	confirmDeleteText: "Вы уверены, что хотите удалить эти модули:\n\n%0",
	removeLabel: "удалить метку systemConfig",
	removePrompt: "Удалить метку systemConfig",
	deleteLabel: "удалить",
	deletePrompt: "Удалить эту заметку навсегда",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
			{name: 'Description', field: 'Description', title: "Описание", type: 'String'},
			{name: 'Version', field: 'Version', title: "Версия", type: 'String'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Размер", type: 'Size'},
			{name: 'Forced', field: 'forced', title: "Forced", tag: 'systemConfigForce', type: 'TagCheckbox'},
			{name: 'Disabled', field: 'disabled', title: "Запрещён", tag: 'systemConfigDisable', type: 'TagCheckbox'},
			{name: 'Executed', field: 'executed', title: "Загружен", type: 'Boolean', trueText: "Да", falseText: "Нет"},
			{name: 'Startup Time', field: 'startupTime', title: "Стартовый", type: 'String'},
			{name: 'Error', field: 'error', title: "Состояние", type: 'Boolean', trueText: "Ошибка", falseText: "Норма"},
			{name: 'Log', field: 'log', title: "Протокол", type: 'StringList'} ],
		rowClasses: [
			{className: 'error', field: 'error'},
			{className: 'warning', field: 'warning'} ]},
	listViewTemplateReadOnly: {
		columns: [
			{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
			{name: 'Description', field: 'Description', title: "Описание", type: 'String'},
			{name: 'Version', field: 'Version', title: "Версия", type: 'String'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Размер", type: 'Size'},
			{name: 'Executed', field: 'executed', title: "Загружен", type: 'Boolean', trueText: "Да", falseText: "Нет"},
			{name: 'Startup Time', field: 'startupTime', title: "Стартовый", type: 'String'},
			{name: 'Error', field: 'error', title: "Состояние", type: 'Boolean', trueText: "Ошибка", falseText: "Норма"},
			{name: 'Log', field: 'log', title: "Log", type: 'StringList'}
			],
		rowClasses: [
			{className: 'error', field: 'error'},
			{className: 'warning', field: 'warning'}
			]}
	});

merge(config.macros.toolbar,{
	moreLabel: "ещё",
	morePrompt: "Показать дополнительные команды",
	lessLabel: "кратко",
	lessPrompt: "Скрыть дополнительные команды",
	separator: "|" });

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

merge(config.macros.importTiddlers,{
	readOnlyWarning: "Вы не можете добавлять что-либо в открытую только для чтения TiddlyWiki. Попробуйте открыть её как файл (через обращение file://)",
	wizardTitle: "Импорт заметок из другого файла или сервера",
	step1Title: "Шаг 1: Найдите сервер или файл TiddlyWiki",
	step1Html: "Укажите тип сервера: <select name='selTypes'><option value=''>Выберите...</option></select><br>введите адрес или путь к файлу тут: <input type='text' size=50 name='txtPath'><br>...или найдите файл: <input type='file' size=50 name='txtBrowse'><br><hr>...или выберите заготовку: <select name='selFeeds'><option value=''>Выберите...</option></select>",
	openLabel: "открыть",
	openPrompt: "Подключиться к этому файлу или серверу",
	openError: "Возникли проблемы с получением файла TiddlyWiki", // v.2.6.0, removed in v.2.6.1
	statusOpenHost: "Открытие узла",
	statusGetWorkspaceList: "Получение списка доступных рабочих областей",
	step2Title: "Шаг 2: Выберите рабочую область",
	step2Html: "Введите имя рабочей области: <input type='text' size=50 name='txtWorkspace'><br>...или выберите рабочую область: <select name='selWorkspace'><option value=''>Выберите...</option></select>",
	cancelLabel: "отмена",
	cancelPrompt: "Отмена этого импорта",
	statusOpenWorkspace: "Открытие рабочего пространства",
	statusGetTiddlerList: "Получение списка разрешённых заметок",
	errorGettingTiddlerList: "Ошибка при получении списка заметок, нажмите Отмену и попробуйте снова",
	step3Title: "Шаг 3: Выберите импортируемые заметки",
	step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Оставить эти заметки связанными с этим сервером для облегчения последующих синхронизаций</input><br><input type='checkbox' name='chkSave'>Сохранить параметры этого сервера в заметке с названием 'systemServer':</input> <input type='text' size=25 name='txtSaveTiddler'>",
	importLabel: "импорт",
	importPrompt: "Импортировать эти заметки",
	confirmOverwriteText: "Вы действительно хотите заменить эти заметки:\n\n%0",
	step4Title: "Шаг 4: Импортируется заметок: %0",
	step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
	doneLabel: "завершить",
	donePrompt: "Закрыть этот мастер-диалог",
	statusDoingImport: "Импортирование заметок",
	statusDoneImport: "Все заметки импортированы",
	systemServerNamePattern: "%2 из %1",
	systemServerNamePatternNoWorkspace: "%1",
	confirmOverwriteSaveTiddler: "Заметка '%0' уже существует. Нажмите 'OK' для замены её на заметку с указанного сервера, или нажмите 'Cancel' для оставления её неизменной",
	serverSaveTemplate: "|''Введите:''|%0|\n|''Адрес:''|%1|\n|''Рабочее пространство:''|%2|\n\nЭта заметка будет автоматически создана для записи параметров этого сервера",
	serverSaveModifier: "(System)",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Размер", type: 'Size'},
			{name: 'Tags', field: 'tags', title: "Метки", type: 'Tags'} ],
		rowClasses: []
	} });

merge(config.macros.upgrade,{
	wizardTitle: "Обновление кода ядра TiddlyWiki",
	step1Title: "Обновление или восстановление этой TiddlyWiki до последней версии",
	step1Html: "Вы готовы обновить код ядра TiddlyWiki до последней версии (с адреса <a href='%0' class='externalLink' target='_blank'>%1</a>). Информационное наполнение этого файла будет сохранено.<br><br>Заметьте, что обновление кода ядра может вызвать конфликт с уже подключенными старыми модулями. Если у Вас появились проблемы с обновлённым файлом, почитайте здесь: <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
	errorCantUpgrade: "Не могу обновить эту TiddlyWiki. Вы можете производить обновление TiddlyWiki-файлов, сохранённых только локально",
	errorNotSaved: "Вы должны сохранить изменения, прежде чем производить обновление",
	step2Title: "Подтвердите параметры обновления",
	step2Html_downgrade: "У Вас получается ухудшение версии файла TiddlyWiki с версии %1 до версии %0.<br><br>Замена версии кода ядра на более раннюю не рекомендуется",
	step2Html_restore: "Похоже, что эта TiddlyWiki уже использует последнюю версию кода ядра (%0).<br><br>Вы можете продолжить замену кода ядра в любом случае для того, чтобы быть уверенными, что код ядра не повреждён и не испорчен",
	step2Html_upgrade: "Вы готовы обновить версию TiddlyWiki с %1 до %0?",
	upgradeLabel: "обновление",
	upgradePrompt: "Приготовьтесь к процессу обновления",
	statusPreparingBackup: "Делается резервная копия",
	statusSavingBackup: "Сохраняется резервная копия",
	errorSavingBackup: "Возникла проблема с сохранением файла резервной копии",
	statusLoadingCore: "Загрузка кода ядра",
	errorLoadingCore: "Ошибка при загрузке кода ядра",
	errorCoreFormat: "Ошибка в новом коде ядра",
	statusSavingCore: "Сохранение нового кода ядра",
	statusReloadingCore: "Повторная загрузка нового кода ядра",
	startLabel: "пуск",
	startPrompt: "Запуск процесса обновления",
	cancelLabel: "отмена",
	cancelPrompt: "Отмена процесса обновления",
	step3Title: "Процесс обновления прерван",
	step3Html: "Вы отменили процесс обновления TiddlyWiki"
	});

merge(config.macros.sync,{
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Заметка", type: 'Tiddler'},
			{name: 'Server Type', field: 'serverType', title: "Тип сервера", type: 'String'},
			{name: 'Server Host', field: 'serverHost', title: "Хранилище сервера (host)", type: 'String'},
			{name: 'Server Workspace', field: 'serverWorkspace', title: "Рабочее пространство сервера", type: 'String'},
			{name: 'Status', field: 'status', title: "Состояние синхронизации", type: 'String'},
			{name: 'Server URL', field: 'serverUrl', title: "Адресная строка", text: "View", type: 'Link'} ],
		rowClasses: [],
		buttons: [{caption: "Синхронизировать эти заметки", name: 'sync'}] },
	wizardTitle: "Синхронизировать с внешним сервером или файлом",
	step1Title: "Выберите заметки, которые Вы хотите синхронизировать",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	syncLabel: "синхронизация",
	syncPrompt: "Синхронизировать эти заметки",
	hasChanged: "Изменены с момента последней синхронизации",
	hasNotChanged: "Нет изменений с момента последней синхронизации",
	syncStatusList: {
		none: {text: "...", display:'none', className:'notChanged'},
		changedServer: {text: "Изменены на сервере", display:null, className:'changedServer'},
		changedLocally: {text: "Изменены локально", display:null, className:'changedLocally'},
		changedBoth: {text: "Изменены в обоих местах сразу", display:null, className:'changedBoth'},
		notFound: {text: "Отсутствует на сервере", display:null, className:'notFound'},
		putToServer: {text: "Обновление сохранено на сервер", display:null, className:'putToServer'},
		gotFromServer: {text: "Обновления получены с сервера", display:null, className:'gotFromServer'} } });

merge(config.macros.annotations,{});

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.commands.syncing,{
	text: "синхронизация",
	tooltip: "Управление синхронизацией этой заметки с сервером или внешним файлом",
	currentlySyncing: "<div>Синхронизирую с помощью <span class='popupHighlight'>'%0'</span> с:</"+"div><div>хранилищем: <span class='popupHighlight'>%1</span></"+"div><div>рабочее пространство: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
	notCurrentlySyncing: "Пока не синхронизировано",
	captionUnSync: "Остановить синхронизацию этой заметки",
	chooseServer: "Привести в соответствие эту заметку с другим сервером:",
	currServerMarker: "\u25cf ",
	notCurrServerMarker: "  "});

merge(config.commands.fields,{
	text: "поля",
	tooltip: "Отображение расширенных параметров этой заметки",
	emptyText: "У этой заметки нет расширенных параметров",
	listViewTemplate: {
		columns: [
			{name: 'Field', field: 'field', title: "Поле", type: 'String'},
			{name: 'Value', field: 'value', title: "Значение", type: 'String'} ],
		rowClasses: [],
		buttons: [] } });

merge(config.shadowTiddlers,{
	DefaultTiddlers: "[[GettingStarted]]",
	MainMenu: "[[GettingStarted]]",
	SiteTitle: "Моя TiddlyWiki",
	SiteSubtitle: "гипертекстовая записная книжка",
	SiteUrl: "",
	SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD.0MM.YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "настройки \u00bb" "Изменение настроек TiddlyWiki">>',
	SideBarTabs: '<<tabs txtMainTab "история" "История" TabTimeline "все" "Все заметки" TabAll "метки" "Все метки" TabTags "ещё" "Другие списки" TabMore>>',
	TabMore: '<<tabs txtMoreTab "нет" "Отсутствующие заметки" TabMoreMissing "потери" "Потерянные заметки" TabMoreOrphans "служебные" "Служебные заметки" TabMoreShadowed>>' });

merge(config.annotations,{
	AdvancedOptions: "Эта служебная заметка обеспечивает доступ к некоторым дополнительным настройкам",
	ColorPalette: "Значения из этой служебной заметки определяют цветовую схему пользовательского интерфейса TiddlyWiki",
	DefaultTiddlers: "Заметки, перечисленные в этой служебной заметке, будут автоматически открываться при каждом запуске TiddlyWiki",
	EditTemplate: "Шаблон HTML в этой служебной заметке определяет, как заметки будут выглядеть, пока они редактируются",
	GettingStarted: "Эта служебная заметка содержит инструкции по начальному использованию",
	ImportTiddlers: "Эта служебная заметка обеспечивает доступ к импортированным заметкам",
	MainMenu: "Эта служебная заметка используется для хранения содержимого главного меню (//обычно отображается в левой колонке экрана//)",
	MarkupPreHead: "Эта заметка вставляется в начало раздела <head> этого HTML-файла c TiddlyWiki",
	MarkupPostHead: "Эта заметка вставляется в конец раздела <head> этого HTML-файла c TiddlyWiki",
	MarkupPreBody: "Эта заметка вставляется в начало раздела <body> этого HTML-файла c TiddlyWiki",
	MarkupPostBody: "Эта заметка вставляется в конец раздела <body> этого HTML-файла с TiddlyWiki сразу же после блока кода",
	OptionsPanel: "Эта служебная заметка используется для хранения скрываемой панели Настроек, расположенной на боковой панели",
	PageTemplate: "HTML-шаблон в этой служебной заметке определяет общий вид TiddlyWiki",
	PluginManager: "Эта служебная заметка обеспечивает доступ к управлению модулями",
	SideBarOptions: "Эта служебная заметка используется для хранения панели поиска и настроек на боковой панели",
	SideBarTabs: "Эта служебная заметка содержит начинку панели со списком служебных заметок на боковой панели",
	SiteSubtitle: "Эта служебная  заметка содержит вторую часть заголовка страницы",
	SiteTitle: "Эта служебная заметка содержит первую часть заголовка страницы",
	SiteUrl: "В эту служебную заметку должен быть занесён полный URL публикации этой TiddlyWiki",
	StyleSheetColors: "Эта служебная заметка содержит CSS-описания, относящиеся к цветам элементов страницы. ''НЕ ИЗМЕНЯЙТЕ ЭТУ ЗАМЕТКУ''. Все изменения делайте в служебной заметке StyleSheet",
	StyleSheet: "Эта заметка может содержать Ваши определения и изменения стилей CSS",
	StyleSheetLayout: "Эта служебная заметка содержит СSS-описания, относящиеся к расположению элементов страниц.''НЕ ИЗМЕНЯЙТЕ ЭТУ ЗАМЕТКУ''. Все изменения делайте в служебной заметке StyleSheet",
	StyleSheetLocale: "Эта служебная заметка содержит CSS-описания, относящиеся к переводу на местный язык",
	StyleSheetPrint: "Эта служебная заметка содержит CSS-описания для печати",
	SystemSettings: "Эта заметка используется для хранения параметров настройки этой TiddlyWiki",
	TabAll: "Эта служебная заметка содержит начинку закладки 'Все' на боковой панели",
	TabMore: "Эта служебная заметка содержит начинку закладки 'Ещё' на боковой панели",
	TabMoreMissing: "Эта служебная заметка содержит начинку закладки 'Нет' на боковой панели",
	TabMoreOrphans: "Эта служебная заметка содержит начинку закладки 'Потери' на боковой панели",
	TabMoreShadowed: "Эта служебная заметка содержит начинку закладки 'Служебные' на боковой панели",
	TabTags: "Эта служебная заметка содержит начинку закладки 'Метки' на боковой панели",
	TabTimeline: "Эта служебная заметка содержит начинку закладки 'История' на боковой панели",
	ToolbarCommands: "Эта служебная заметка определяет, какие команды будут показываться в меню заметки",
	ViewTemplate: "HTML-шаблон в этой сервисной заметке определяет, как будет выглядеть заметка",
	WindowTitle: "Эта служебная заметка содержит полный вид заголовка страницы" });

//}}}
|~ViewToolbar|closeTiddler closeOthers +editTiddler > fields syncing permalink references jump <|
|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|
<!--{{{-->
<table width=100%>
<tr><td valign=top>
	<div class='title' macro='view title'></div>
	<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span>&nbsp;(<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
</td>
<td valign=top>
	<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
	<div class='tagging' macro='tagging'></div>
	<div class='tagged' macro='tags'></div>
	<div class='tagClear'></div>
</td></tr>
</table>
<div class='viewer' macro='view text wikified'></div>
<!--}}}-->
!Русский
Если у Вас есть желание поучаствовать в развитии продукта TiddlyWiki, и Вы неплохо знаете какие-либо другие языки {{remark{(не только русский и английский)}}}, и у Вас вдруг возникнет желание ''совершенно бесплатно'' сделать что-либо полезное для мiра, то обращайтесь по любому из [[контактов|vmunt]]. Чем могу, помогу. Ваши переводы будут включены во все места на этом сайте с обязательным указанием Вашего авторства
!English
If you want to develop TiddlyWiki project, and you know anything other language(s) {{remark{(german, french, italian, etc.)}}}, I can place your translations for any matherials in my site absolutely cost-free with mandatory indication of your authority of these yours translations {{remark{(sorry for my rough english)}}}. For contact with me use [[contact tiddler|vmunt]].
<!--{{{-->
<span class='yourSearchNumber' macro='foundTiddler number'></span>
<span class='yourSearchTitle' macro='foundTiddler title'/></span>&nbsp;-&nbsp;
<span macro='foundTiddler field includeURL'/></span>&nbsp;-&nbsp;
<span class='yourSearchTags' macro='foundTiddler field tags 50'/></span>

<span macro="yourSearch if previewText"><div class='yourSearchText' macro='foundTiddler field text 250'/></div></span>
<!--}}}-->
/***
|''Name:''|YourSearchPlugin|
|''Version:''|2.1.5 (2010-02-16)|
|''Source:''|http://tiddlywiki.abego-software.de/#YourSearchPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''Copyright:''|&copy; 2005-2010 [[abego Software|http://www.abego-software.de]]|
|''~CoreVersion:''|2.1.0|
|''Community:''|[[del.icio.us|http://del.icio.us/post?url=http://tiddlywiki.abego-software.de/index.html%23YourSearchPlugin]]|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; ~InternetExplorer 6.0|
!About YourSearch
YourSearch gives you a bunch of new features to simplify and speed up your daily searches in TiddlyWiki. It seamlessly integrates into the standard TiddlyWiki search: just start typing into the 'search' field and explore!

For more information see [[Help|YourSearch Help]].
!Compatibility
This plugin requires TiddlyWiki 2.1. 
Check the [[archive|http://tiddlywiki.abego-software.de/archive]] for ~YourSearchPlugins supporting older versions of TiddlyWiki.
!Source Code
***/
/***
This plugin's source code is compressed (and hidden). Use this [[link|http://tiddlywiki.abego-software.de/archive/YourSearchPlugin/Plugin-YourSearch-src.2.1.5.js]] to get the readable source code.
***/
///%
if(!version.extensions.YourSearchPlugin){version.extensions.YourSearchPlugin={major:2,minor:1,revision:5,source:"http://tiddlywiki.abego-software.de/#YourSearchPlugin",licence:"[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",copyright:"Copyright (c) abego Software GmbH, 2005-2010 (www.abego-software.de)"};if(!window.abego){window.abego={};}if(!Array.forEach){Array.forEach=function(_1,_2,_3){for(var i=0,_4=_1.length;i<_4;i++){_2.call(_3,_1[i],i,_1);}};Array.prototype.forEach=function(_5,_6){for(var i=0,_7=this.length;i<_7;i++){_5.call(_6,this[i],i,this);}};}abego.toInt=function(s,_8){if(!s){return _8;}var n=parseInt(s);return (n==NaN)?_8:n;};abego.createEllipsis=function(_9){var e=createTiddlyElement(_9,"span");e.innerHTML="&hellip;";};abego.shallowCopy=function(_a){if(!_a){return _a;}var _b={};for(var n in _a){_b[n]=_a[n];}return _b;};abego.copyOptions=function(_c){return !_c?{}:abego.shallowCopy(_c);};abego.countStrings=function(_d,s){if(!s){return 0;}var _e=s.length;var n=0;var _f=0;while(1){var i=_d.indexOf(s,_f);if(i<0){return n;}n++;_f=i+_e;}return n;};abego.getBracedText=function(_10,_11,_12){if(!_11){_11=0;}var re=/\{([^\}]*)\}/gm;re.lastIndex=_11;var m=re.exec(_10);if(m){var s=m[1];var _13=abego.countStrings(s,"{");if(!_13){if(_12){_12.lastIndex=re.lastIndex;}return s;}var len=_10.length;for(var i=re.lastIndex;i<len&&_13;i++){var c=_10.charAt(i);if(c=="{"){_13++;}else{if(c=="}"){_13--;}}}if(!_13){if(_12){_12.lastIndex=i-1;}return _10.substring(m.index+1,i-1);}}};abego.select=function(_14,_15,_16,_17){if(!_17){_17=[];}_14.forEach(function(t){if(_15.call(_16,t)){_17.push(t);}});return _17;};abego.consumeEvent=function(e){if(e.stopPropagation){e.stopPropagation();}if(e.preventDefault){e.preventDefault();}e.cancelBubble=true;e.returnValue=true;};abego.TiddlerFilterTerm=function(_18,_19){if(!_19){_19={};}var _1a=_18;if(!_19.textIsRegExp){_1a=_18.escapeRegExp();if(_19.fullWordMatch){_1a="\\b"+_1a+"\\b";}}var _1b=new RegExp(_1a,"m"+(_19.caseSensitive?"":"i"));this.tester=new abego.MultiFieldRegExpTester(_1b,_19.fields,_19.withExtendedFields);};abego.TiddlerFilterTerm.prototype.test=function(_1c){return this.tester.test(_1c);};abego.parseNewTiddlerCommandLine=function(s){var m=/(.*?)\.(?:\s+|$)([^#]*)(#.*)?/.exec(s);if(!m){m=/([^#]*)()(#.*)?/.exec(s);}if(m){var r;if(m[3]){var s2=m[3].replace(/#/g,"");r=s2.parseParams("tag");}else{r=[[]];}var _1d=m[2]?m[2].trim():"";r.push({name:"text",value:_1d});r[0].text=[_1d];return {title:m[1].trim(),params:r};}else{return {title:s.trim(),params:[[]]};}};abego.parseTiddlerFilterTerm=function(_1e,_1f,_20){var re=/\s*(?:(?:\{([^\}]*)\})|(?:(=)|([#%!])|(?:(\w+)\s*\:(?!\/\/))|(?:(?:("(?:(?:\\")|[^"])+")|(?:\/((?:(?:\\\/)|[^\/])+)\/)|(\w+\:\/\/[^\s]+)|([^\s\)\-\"]+)))))/mg;var _21={"!":"title","%":"text","#":"tags"};var _22={};var _23;re.lastIndex=_1f;while(1){var i=re.lastIndex;var m=re.exec(_1e);if(!m||m.index!=i){throw "Word or String literal expected";}if(m[1]){var _24={};var _25=abego.getBracedText(_1e,0,_24);if(!_25){throw "Invalid {...} syntax";}var f=Function("tiddler","return ("+_25+");");return {func:f,lastIndex:_24.lastIndex,markRE:null};}if(m[2]){_23=true;}else{if(m[3]){_22[_21[m[3]]]=1;}else{if(m[4]){_22[m[4]]=1;}else{var _26=m[6];var _27=m[5]?window.eval(m[5]):m[6]?m[6]:m[7]?m[7]:m[8];var _20=abego.copyOptions(_20);_20.fullWordMatch=_23;_20.textIsRegExp=_26;var _28=[];for(var n in _22){_28.push(n);}if(_28.length==0){_20.fields=_20.defaultFields;}else{_20.fields=_28;_20.withExtendedFields=false;}var _29=new abego.TiddlerFilterTerm(_27,_20);var _2a=_26?_27:_27.escapeRegExp();if(_2a&&_23){_2a="\\b"+_2a+"\\b";}return {func:function(_2b){return _29.test(_2b);},lastIndex:re.lastIndex,markRE:_2a?"(?:"+_2a+")":null};}}}}};abego.BoolExp=function(s,_2c,_2d){this.s=s;var _2e=_2d&&_2d.defaultOperationIs_OR;var _2f=/\s*(?:(\-|not)|(\())/gi;var _30=/\s*\)/g;var _31=/\s*(?:(and|\&\&)|(or|\|\|))/gi;var _32=/\s*[^\)\s]/g;var _33=/\s*(\-|not)?(\s*\()?/gi;var _34;var _35=function(_36){_33.lastIndex=_36;var m=_33.exec(s);var _37;var _38;if(m&&m.index==_36){_36+=m[0].length;_37=m[1];if(m[2]){var e=_34(_36);_30.lastIndex=e.lastIndex;if(!_30.exec(s)){throw "Missing ')'";}_38={func:e.func,lastIndex:_30.lastIndex,markRE:e.markRE};}}if(!_38){_38=_2c(s,_36,_2d);}if(_37){_38.func=(function(f){return function(_39){return !f(_39);};})(_38.func);_38.markRE=null;}return _38;};_34=function(_3a){var _3b=_35(_3a);while(1){var l=_3b.lastIndex;_31.lastIndex=l;var m=_31.exec(s);var _3c;var _3d;if(m&&m.index==l){_3c=!m[1];_3d=_35(_31.lastIndex);}else{try{_3d=_35(l);}catch(e){return _3b;}_3c=_2e;}_3b.func=(function(_3e,_3f,_40){return _40?function(_41){return _3e(_41)||_3f(_41);}:function(_42){return _3e(_42)&&_3f(_42);};})(_3b.func,_3d.func,_3c);_3b.lastIndex=_3d.lastIndex;if(!_3b.markRE){_3b.markRE=_3d.markRE;}else{if(_3d.markRE){_3b.markRE=_3b.markRE+"|"+_3d.markRE;}}}};var _43=_34(0);this.evalFunc=_43.func;if(_43.markRE){this.markRegExp=new RegExp(_43.markRE,_2d.caseSensitive?"mg":"img");}};abego.BoolExp.prototype.exec=function(){return this.evalFunc.apply(this,arguments);};abego.BoolExp.prototype.getMarkRegExp=function(){return this.markRegExp;};abego.BoolExp.prototype.toString=function(){return this.s;};abego.MultiFieldRegExpTester=function(re,_44,_45){this.re=re;this.fields=_44?_44:["title","text","tags"];this.withExtendedFields=_45;};abego.MultiFieldRegExpTester.prototype.test=function(_46){var re=this.re;for(var i=0;i<this.fields.length;i++){var s=store.getValue(_46,this.fields[i]);if(typeof s=="string"&&re.test(s)){return this.fields[i];}}if(this.withExtendedFields){return store.forEachField(_46,function(_47,_48,_49){return typeof _49=="string"&&re.test(_49)?_48:null;},true);}return null;};abego.TiddlerQuery=function(_4a,_4b,_4c,_4d,_4e){if(_4c){this.regExp=new RegExp(_4a,_4b?"mg":"img");this.tester=new abego.MultiFieldRegExpTester(this.regExp,_4d,_4e);}else{this.expr=new abego.BoolExp(_4a,abego.parseTiddlerFilterTerm,{defaultFields:_4d,caseSensitive:_4b,withExtendedFields:_4e});}this.getQueryText=function(){return _4a;};this.getUseRegExp=function(){return _4c;};this.getCaseSensitive=function(){return _4b;};this.getDefaultFields=function(){return _4d;};this.getWithExtendedFields=function(){return _4e;};};abego.TiddlerQuery.prototype.test=function(_4f){if(!_4f){return false;}if(this.regExp){return this.tester.test(_4f);}return this.expr.exec(_4f);};abego.TiddlerQuery.prototype.filter=function(_50){return abego.select(_50,this.test,this);};abego.TiddlerQuery.prototype.getMarkRegExp=function(){if(this.regExp){return "".search(this.regExp)>=0?null:this.regExp;}return this.expr.getMarkRegExp();};abego.TiddlerQuery.prototype.toString=function(){return (this.regExp?this.regExp:this.expr).toString();};abego.PageWiseRenderer=function(){this.firstIndexOnPage=0;};merge(abego.PageWiseRenderer.prototype,{setItems:function(_51){this.items=_51;this.setFirstIndexOnPage(0);},getMaxPagesInNavigation:function(){return 10;},getItemsCount:function(_52){return this.items?this.items.length:0;},getCurrentPageIndex:function(){return Math.floor(this.firstIndexOnPage/this.getItemsPerPage());},getLastPageIndex:function(){return Math.floor((this.getItemsCount()-1)/this.getItemsPerPage());},setFirstIndexOnPage:function(_53){this.firstIndexOnPage=Math.min(Math.max(0,_53),this.getItemsCount()-1);},getFirstIndexOnPage:function(){this.firstIndexOnPage=Math.floor(this.firstIndexOnPage/this.getItemsPerPage())*this.getItemsPerPage();return this.firstIndexOnPage;},getLastIndexOnPage:function(){return Math.min(this.getFirstIndexOnPage()+this.getItemsPerPage()-1,this.getItemsCount()-1);},onPageChanged:function(_54,_55){},renderPage:function(_56){if(_56.beginRendering){_56.beginRendering(this);}try{if(this.getItemsCount()){var _57=this.getLastIndexOnPage();var _58=-1;for(var i=this.getFirstIndexOnPage();i<=_57;i++){_58++;_56.render(this,this.items[i],i,_58);}}}finally{if(_56.endRendering){_56.endRendering(this);}}},addPageNavigation:function(_59){if(!this.getItemsCount()){return;}var _5a=this;var _5b=function(e){if(!e){var e=window.event;}abego.consumeEvent(e);var _5c=abego.toInt(this.getAttribute("page"),0);var _5d=_5a.getCurrentPageIndex();if(_5c==_5d){return;}var _5e=_5c*_5a.getItemsPerPage();_5a.setFirstIndexOnPage(_5e);_5a.onPageChanged(_5c,_5d);};var _5f;var _60=this.getCurrentPageIndex();var _61=this.getLastPageIndex();if(_60>0){_5f=createTiddlyButton(_59,"Previous","Go to previous page (Shortcut: Alt-'<')",_5b,"prev");_5f.setAttribute("page",(_60-1).toString());_5f.setAttribute("accessKey","<");}for(var i=-this.getMaxPagesInNavigation();i<this.getMaxPagesInNavigation();i++){var _62=_60+i;if(_62<0){continue;}if(_62>_61){break;}var _63=(i+_60+1).toString();var _64=_62==_60?"currentPage":"otherPage";_5f=createTiddlyButton(_59,_63,"Go to page %0".format([_63]),_5b,_64);_5f.setAttribute("page",(_62).toString());}if(_60<_61){_5f=createTiddlyButton(_59,"Next","Go to next page (Shortcut: Alt-'>')",_5b,"next");_5f.setAttribute("page",(_60+1).toString());_5f.setAttribute("accessKey",">");}}});abego.LimitedTextRenderer=function(){var _65=40;var _66=4;var _67=function(_68,_69,_6a){var n=_68.length;if(n==0){_68.push({start:_69,end:_6a});return;}var i=0;for(;i<n;i++){var _6b=_68[i];if(_6b.start<=_6a&&_69<=_6b.end){var r;var _6c=i+1;for(;_6c<n;_6c++){r=_68[_6c];if(r.start>_6a||_69>_6b.end){break;}}var _6d=_69;var _6e=_6a;for(var j=i;j<_6c;j++){r=_68[j];_6d=Math.min(_6d,r.start);_6e=Math.max(_6e,r.end);}_68.splice(i,_6c-i,{start:_6d,end:_6e});return;}if(_6b.start>_6a){break;}}_68.splice(i,0,{start:_69,end:_6a});};var _6f=function(_70){var _71=0;for(var i=0;i<_70.length;i++){var _72=_70[i];_71+=_72.end-_72.start;}return _71;};var _73=function(c){return (c>="a"&&c<="z")||(c>="A"&&c<="Z")||c=="_";};var _74=function(s,_75){if(!_73(s[_75])){return null;}for(var i=_75-1;i>=0&&_73(s[i]);i--){}var _76=i+1;var n=s.length;for(i=_75+1;i<n&&_73(s[i]);i++){}return {start:_76,end:i};};var _77=function(s,_78,_79){var _7a;if(_79){_7a=_74(s,_78);}else{if(_78<=0){return _78;}_7a=_74(s,_78-1);}if(!_7a){return _78;}if(_79){if(_7a.start>=_78-_66){return _7a.start;}if(_7a.end<=_78+_66){return _7a.end;}}else{if(_7a.end<=_78+_66){return _7a.end;}if(_7a.start>=_78-_66){return _7a.start;}}return _78;};var _7b=function(s,_7c){var _7d=[];if(_7c){var _7e=0;var n=s.length;var _7f=0;do{_7c.lastIndex=_7e;var _80=_7c.exec(s);if(_80){if(_7e<_80.index){var t=s.substring(_7e,_80.index);_7d.push({text:t});}_7d.push({text:_80[0],isMatch:true});_7e=_80.index+_80[0].length;}else{_7d.push({text:s.substr(_7e)});break;}}while(true);}else{_7d.push({text:s});}return _7d;};var _81=function(_82){var _83=0;for(var i=0;i<_82.length;i++){if(_82[i].isMatch){_83++;}}return _83;};var _84=function(s,_85,_86,_87,_88){var _89=Math.max(Math.floor(_88/(_87+1)),_65);var _8a=Math.max(_89-(_86-_85),0);var _8b=Math.min(Math.floor(_86+_8a/3),s.length);var _8c=Math.max(_8b-_89,0);_8c=_77(s,_8c,true);_8b=_77(s,_8b,false);return {start:_8c,end:_8b};};var _8d=function(_8e,s,_8f){var _90=[];var _91=_81(_8e);var pos=0;for(var i=0;i<_8e.length;i++){var t=_8e[i];var _92=t.text;if(t.isMatch){var _93=_84(s,pos,pos+_92.length,_91,_8f);_67(_90,_93.start,_93.end);}pos+=_92.length;}return _90;};var _94=function(s,_95,_96){var _97=_96-_6f(_95);while(_97>0){if(_95.length==0){_67(_95,0,_77(s,_96,false));return;}else{var _98=_95[0];var _99;var _9a;if(_98.start==0){_99=_98.end;if(_95.length>1){_9a=_95[1].start;}else{_67(_95,_99,_77(s,_99+_97,false));return;}}else{_99=0;_9a=_98.start;}var _9b=Math.min(_9a,_99+_97);_67(_95,_99,_9b);_97-=(_9b-_99);}}};var _9c=function(_9d,s,_9e,_9f,_a0){if(_9f.length==0){return;}var _a1=function(_a2,s,_a3,_a4,_a5){var t;var _a6;var pos=0;var i=0;var _a7=0;for(;i<_a3.length;i++){t=_a3[i];_a6=t.text;if(_a4<pos+_a6.length){_a7=_a4-pos;break;}pos+=_a6.length;}var _a8=_a5-_a4;for(;i<_a3.length&&_a8>0;i++){t=_a3[i];_a6=t.text.substr(_a7);_a7=0;if(_a6.length>_a8){_a6=_a6.substr(0,_a8);}if(t.isMatch){createTiddlyElement(_a2,"span",null,"marked",_a6);}else{createTiddlyText(_a2,_a6);}_a8-=_a6.length;}if(_a5<s.length){abego.createEllipsis(_a2);}};if(_9f[0].start>0){abego.createEllipsis(_9d);}var _a9=_a0;for(var i=0;i<_9f.length&&_a9>0;i++){var _aa=_9f[i];var len=Math.min(_aa.end-_aa.start,_a9);_a1(_9d,s,_9e,_aa.start,_aa.start+len);_a9-=len;}};this.render=function(_ab,s,_ac,_ad){if(s.length<_ac){_ac=s.length;}var _ae=_7b(s,_ad);var _af=_8d(_ae,s,_ac);_94(s,_af,_ac);_9c(_ab,s,_ae,_af,_ac);};};(function(){function _b0(msg){alert(msg);throw msg;};if(version.major<2||(version.major==2&&version.minor<1)){_b0("YourSearchPlugin requires TiddlyWiki 2.1 or newer.\n\nCheck the archive for YourSearch plugins\nsupporting older versions of TiddlyWiki.\n\nArchive: http://tiddlywiki.abego-software.de/archive");}abego.YourSearch={};var _b1;var _b2;var _b3=function(_b4){_b1=_b4;};var _b5=function(){return _b1?_b1:[];};var _b6=function(){return _b1?_b1.length:0;};var _b7=4;var _b8=10;var _b9=2;var _ba=function(s,re){var m=s.match(re);return m?m.length:0;};var _bb=function(_bc,_bd){var _be=_bd.getMarkRegExp();if(!_be){return 1;}var _bf=_bc.title.match(_be);var _c0=_bf?_bf.length:0;var _c1=_ba(_bc.getTags(),_be);var _c2=_bf?_bf.join("").length:0;var _c3=_bc.title.length>0?_c2/_bc.title.length:0;var _c4=_c0*_b7+_c1*_b9+_c3*_b8+1;return _c4;};var _c5=function(_c6,_c7,_c8,_c9,_ca,_cb){_b2=null;var _cc=_c6.reverseLookup("tags",_cb,false);try{var _cd=[];if(config.options.chkSearchInTitle){_cd.push("title");}if(config.options.chkSearchInText){_cd.push("text");}if(config.options.chkSearchInTags){_cd.push("tags");}_b2=new abego.TiddlerQuery(_c7,_c8,_c9,_cd,config.options.chkSearchExtendedFields);}catch(e){return [];}var _ce=_b2.filter(_cc);var _cf=abego.YourSearch.getRankFunction();for(var i=0;i<_ce.length;i++){var _d0=_ce[i];var _d1=_cf(_d0,_b2);_d0.searchRank=_d1;}if(!_ca){_ca="title";}var _d2=function(a,b){var _d3=a.searchRank-b.searchRank;if(_d3==0){if(a[_ca]==b[_ca]){return (0);}else{return (a[_ca]<b[_ca])?-1:+1;}}else{return (_d3>0)?-1:+1;}};_ce.sort(_d2);return _ce;};var _d4=80;var _d5=50;var _d6=250;var _d7=50;var _d8=25;var _d9=10;var _da="yourSearchResult";var _db="yourSearchResultItems";var _dc;var _dd;var _de;var _df;var _e0;var _e1=function(){if(version.extensions.YourSearchPlugin.styleSheetInited){return;}version.extensions.YourSearchPlugin.styleSheetInited=true;setStylesheet(store.getTiddlerText("YourSearchStyleSheet"),"yourSearch");};var _e2=function(){return _dd!=null&&_dd.parentNode==document.body;};var _e3=function(){if(_e2()){document.body.removeChild(_dd);}};var _e4=function(e){_e3();var _e5=this.getAttribute("tiddlyLink");if(_e5){var _e6=this.getAttribute("withHilite");var _e7=highlightHack;if(_e6&&_e6=="true"&&_b2){highlightHack=_b2.getMarkRegExp();}story.displayTiddler(this,_e5);highlightHack=_e7;}return (false);};var _e8=function(){if(!_de){return;}var _e9=_de;var _ea=findPosX(_e9);var _eb=findPosY(_e9);var _ec=_e9.offsetHeight;var _ed=_ea;var _ee=_eb+_ec;var _ef=findWindowWidth();if(_ef<_dd.offsetWidth){_dd.style.width=(_ef-100)+"px";_ef=findWindowWidth();}var _f0=_dd.offsetWidth;if(_ed+_f0>_ef){_ed=_ef-_f0-30;}if(_ed<0){_ed=0;}_dd.style.left=_ed+"px";_dd.style.top=_ee+"px";_dd.style.display="block";};var _f1=function(){if(_dd){window.scrollTo(0,ensureVisible(_dd));}if(_de){window.scrollTo(0,ensureVisible(_de));}};var _f2=function(){_e8();_f1();};var _f3;var _f4;var _f5=new abego.PageWiseRenderer();var _f6=function(_f7){this.itemHtml=store.getTiddlerText("YourSearchItemTemplate");if(!this.itemHtml){_b0("YourSearchItemTemplate not found");}this.place=document.getElementById(_db);if(!this.place){this.place=createTiddlyElement(_f7,"div",_db);}};merge(_f6.prototype,{render:function(_f8,_f9,_fa,_fb){_f3=_fb;_f4=_f9;var _fc=createTiddlyElement(this.place,"div",null,"yourSearchItem");_fc.innerHTML=this.itemHtml;applyHtmlMacros(_fc,null);refreshElements(_fc,null);},endRendering:function(_fd){_f4=null;}});var _fe=function(){if(!_dd||!_de){return;}var _ff=store.getTiddlerText("YourSearchResultTemplate");if(!_ff){_ff="<b>Tiddler YourSearchResultTemplate not found</b>";}_dd.innerHTML=_ff;applyHtmlMacros(_dd,null);refreshElements(_dd,null);var _100=new _f6(_dd);_f5.renderPage(_100);_f2();};_f5.getItemsPerPage=function(){var n=(config.options.chkPreviewText)?abego.toInt(config.options.txtItemsPerPageWithPreview,_d9):abego.toInt(config.options.txtItemsPerPage,_d8);return (n>0)?n:1;};_f5.onPageChanged=function(){_fe();};var _101=function(){if(_de==null||!config.options.chkUseYourSearch){return;}if((_de.value==_dc)&&_dc&&!_e2()){if(_dd&&(_dd.parentNode!=document.body)){document.body.appendChild(_dd);_f2();}else{abego.YourSearch.onShowResult(true);}}};var _102=function(){_e3();_dd=null;_dc=null;};var _103=function(self,e){while(e!=null){if(self==e){return true;}e=e.parentNode;}return false;};var _104=function(e){if(e.target==_de){return;}if(e.target==_df){return;}if(_dd&&_103(_dd,e.target)){return;}_e3();};var _105=function(e){if(e.keyCode==27){_e3();}};addEvent(document,"click",_104);addEvent(document,"keyup",_105);var _106=function(text,_107,_108){_dc=text;_b3(_c5(store,text,_107,_108,"title","excludeSearch"));abego.YourSearch.onShowResult();};var _109=function(_10a,_10b,_10c,_10d,_10e,_10f){_e1();_dc="";var _110=null;var _111=function(txt){if(config.options.chkUseYourSearch){_106(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}else{story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);}_dc=txt.value;};var _112=function(e){_111(_de);return false;};var _113=function(e){if(!e){var e=window.event;}_de=this;switch(e.keyCode){case 13:if(e.ctrlKey&&_e0&&_e2()){_e0.onclick.apply(_e0,[e]);}else{_111(this);}break;case 27:if(_e2()){_e3();}else{this.value="";clearMessage();}break;}if(String.fromCharCode(e.keyCode)==this.accessKey||e.altKey){_101();}if(this.value.length<3&&_110){clearTimeout(_110);}if(this.value.length>2){if(this.value!=_dc){if(!config.options.chkUseYourSearch||config.options.chkSearchAsYouType){if(_110){clearTimeout(_110);}var txt=this;_110=setTimeout(function(){_111(txt);},500);}}else{if(_110){clearTimeout(_110);}}}if(this.value.length==0){_e3();}};var _114=function(e){this.select();clearMessage();_101();};var args=_10e.parseParams("list",null,true);var _115=getFlag(args,"buttonAtRight");var _116=getParam(args,"sizeTextbox",this.sizeTextbox);var btn;if(!_115){btn=createTiddlyButton(_10a,this.label,this.prompt,_112);}var txt=createTiddlyElement(null,"input",null,"txtOptionInput searchField",null);if(_10c[0]){txt.value=_10c[0];}txt.onkeyup=_113;txt.onfocus=_114;txt.setAttribute("size",_116);txt.setAttribute("accessKey",this.accessKey);txt.setAttribute("autocomplete","off");if(config.browser.isSafari){txt.setAttribute("type","search");txt.setAttribute("results","5");}else{txt.setAttribute("type","text");}if(_10a){_10a.appendChild(txt);}if(_115){btn=createTiddlyButton(_10a,this.label,this.prompt,_112);}_de=txt;_df=btn;};var _117=function(){_e3();var _118=_b5();var n=_118.length;if(n){var _119=[];for(var i=0;i<n;i++){_119.push(_118[i].title);}story.displayTiddlers(null,_119);}};var _11a=function(_11b,_11c,_11d,_11e){invokeMacro(_11b,"option",_11c,_11d,_11e);var elem=_11b.lastChild;var _11f=elem.onclick;elem.onclick=function(e){var _120=_11f.apply(this,arguments);_fe();return _120;};return elem;};var _121=function(s){var _122=["''","{{{","}}}","//","<<<","/***","***/"];var _123="";for(var i=0;i<_122.length;i++){if(i!=0){_123+="|";}_123+="("+_122[i].escapeRegExp()+")";}return s.replace(new RegExp(_123,"mg"),"").trim();};var _124=function(){var i=_f3;return (i>=0&&i<=9)?(i<9?(i+1):0):-1;};var _125=new abego.LimitedTextRenderer();var _126=function(_127,s,_128){_125.render(_127,s,_128,_b2.getMarkRegExp());};var _129=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(_12a,_12b,_12c,_12d,_12e,tags,_12f){_129.apply(this,arguments);_102();};var _130=TiddlyWiki.prototype.removeTiddler;TiddlyWiki.prototype.removeTiddler=function(_131){_130.apply(this,arguments);_102();};config.macros.yourSearch={label:"yourSearch",prompt:"Gives access to the current/last YourSearch result",handler:function(_132,_133,_134,_135,_136,_137){if(_134.length==0){return;}var name=_134[0];var func=config.macros.yourSearch.funcs[name];if(func){func(_132,_133,_134,_135,_136,_137);}},tests:{"true":function(){return true;},"false":function(){return false;},"found":function(){return _b6()>0;},"previewText":function(){return config.options.chkPreviewText;}},funcs:{itemRange:function(_138){if(_b6()){var _139=_f5.getLastIndexOnPage();var s="%0 - %1".format([_f5.getFirstIndexOnPage()+1,_139+1]);createTiddlyText(_138,s);}},count:function(_13a){createTiddlyText(_13a,_b6().toString());},query:function(_13b){if(_b2){createTiddlyText(_13b,_b2.toString());}},version:function(_13c){var t="YourSearch %0.%1.%2".format([version.extensions.YourSearchPlugin.major,version.extensions.YourSearchPlugin.minor,version.extensions.YourSearchPlugin.revision]);var e=createTiddlyElement(_13c,"a");e.setAttribute("href","http://tiddlywiki.abego-software.de/#YourSearchPlugin");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">"+t+"<font>";},copyright:function(_13d){var e=createTiddlyElement(_13d,"a");e.setAttribute("href","http://www.abego-software.de");e.innerHTML="<font color=\"black\" face=\"Arial, Helvetica, sans-serif\">&copy; 2005-2008 <b><font color=\"red\">abego</font></b> Software<font>";},newTiddlerButton:function(_13e){if(_b2){var r=abego.parseNewTiddlerCommandLine(_b2.getQueryText());var btn=config.macros.newTiddler.createNewTiddlerButton(_13e,r.title,r.params,"new tiddler","Create a new tiddler based on search text. (Shortcut: Ctrl-Enter; Separators: '.', '#')",null,"text");var _13f=btn.onclick;btn.onclick=function(){_e3();_13f.apply(this,arguments);};_e0=btn;}},linkButton:function(_140,_141,_142,_143,_144,_145){if(_142<2){return;}var _146=_142[1];var text=_142<3?_146:_142[2];var _147=_142<4?text:_142[3];var _148=_142<5?null:_142[4];var btn=createTiddlyButton(_140,text,_147,_e4,null,null,_148);btn.setAttribute("tiddlyLink",_146);},closeButton:function(_149,_14a,_14b,_14c,_14d,_14e){var _14f=createTiddlyButton(_149,"close","Close the Search Results (Shortcut: ESC)",_e3);},openAllButton:function(_150,_151,_152,_153,_154,_155){var n=_b6();if(n==0){return;}var _156=n==1?"open tiddler":"open all %0 tiddlers".format([n]);var _157=createTiddlyButton(_150,_156,"Open all found tiddlers (Shortcut: Alt-O)",_117);_157.setAttribute("accessKey","O");},naviBar:function(_158,_159,_15a,_15b,_15c,_15d){_f5.addPageNavigation(_158);},"if":function(_15e,_15f,_160,_161,_162,_163){if(_160.length<2){return;}var _164=_160[1];var _165=(_164=="not");if(_165){if(_160.length<3){return;}_164=_160[2];}var test=config.macros.yourSearch.tests[_164];var _166=false;try{if(test){_166=test(_15e,_15f,_160,_161,_162,_163)!=_165;}else{_166=(!eval(_164))==_165;}}catch(ex){}if(!_166){_15e.style.display="none";}},chkPreviewText:function(_167,_168,_169,_16a,_16b,_16c){var _16d=_169.slice(1).join(" ");var elem=_11a(_167,"chkPreviewText",_16a,_16c);elem.setAttribute("accessKey","P");elem.title="Show text preview of found tiddlers (Shortcut: Alt-P)";return elem;}}};config.macros.foundTiddler={label:"foundTiddler",prompt:"Provides information on the tiddler currently processed on the YourSearch result page",handler:function(_16e,_16f,_170,_171,_172,_173){var name=_170[0];var func=config.macros.foundTiddler.funcs[name];if(func){func(_16e,_16f,_170,_171,_172,_173);}},funcs:{title:function(_174,_175,_176,_177,_178,_179){if(!_f4){return;}var _17a=_124();var _17b=_17a>=0?"Open tiddler (Shortcut: Alt-%0)".format([_17a.toString()]):"Open tiddler";var btn=createTiddlyButton(_174,null,_17b,_e4,null);btn.setAttribute("tiddlyLink",_f4.title);btn.setAttribute("withHilite","true");_126(btn,_f4.title,_d4);if(_17a>=0){btn.setAttribute("accessKey",_17a.toString());}},tags:function(_17c,_17d,_17e,_17f,_180,_181){if(!_f4){return;}_126(_17c,_f4.getTags(),_d5);},text:function(_182,_183,_184,_185,_186,_187){if(!_f4){return;}_126(_182,_121(_f4.text),_d6);},field:function(_188,_189,_18a,_18b,_18c,_18d){if(!_f4){return;}var name=_18a[1];var len=_18a.length>2?abego.toInt(_18a[2],_d7):_d7;var v=store.getValue(_f4,name);if(v){_126(_188,_121(v),len);}},number:function(_18e,_18f,_190,_191,_192,_193){var _194=_124();if(_194>=0){var text="%0)".format([_194.toString()]);createTiddlyElement(_18e,"span",null,"shortcutNumber",text);}}}};var opts={chkUseYourSearch:true,chkPreviewText:true,chkSearchAsYouType:true,chkSearchInTitle:true,chkSearchInText:true,chkSearchInTags:true,chkSearchExtendedFields:true,txtItemsPerPage:_d8,txtItemsPerPageWithPreview:_d9};for(var n in opts){if(config.options[n]==undefined){config.options[n]=opts[n];}}config.shadowTiddlers.AdvancedOptions+="\n<<option chkUseYourSearch>> Use 'Your Search' //([[more options|YourSearch Options]]) ([[help|YourSearch Help]])// ";config.shadowTiddlers["YourSearch Help"]="!Field Search\nWith the Field Search you can restrict your search to certain fields of a tiddler, e.g"+" only search the tags or only the titles. The general form is //fieldname//'':''//textToSearch// (e."+"g. {{{title:intro}}}). In addition one-character shortcuts are also supported for the standard field"+"s {{{title}}}, {{{text}}} and {{{tags}}}:\n|!What you want|!What you type|!Example|\n|Search ''titles "+"only''|start word with ''!''|{{{!jonny}}} (shortcut for {{{title:jonny}}})|\n|Search ''contents/text "+"only''|start word with ''%''|{{{%football}}} (shortcut for {{{text:football}}})|\n|Search ''tags only"+"''|start word with ''#''|{{{#Plugin}}} (shortcut for {{{tags:Plugin}}})|\n\nUsing this feature you may"+" also search the extended fields (\"Metadata\") introduced with TiddlyWiki 2.1, e.g. use {{{priority:1"+"}}} to find all tiddlers with the priority field set to \"1\".\n\nYou may search a word in more than one"+" field. E.g. {{{!#Plugin}}} (or {{{title:tags:Plugin}}} in the \"long form\") finds tiddlers containin"+"g \"Plugin\" either in the title or in the tags (but does not look for \"Plugin\" in the text). \n\n!Boole"+"an Search\nThe Boolean Search is useful when searching for multiple words.\n|!What you want|!What you "+"type|!Example|\n|''All words'' must exist|List of words|{{{jonny jeremy}}} (or {{{jonny and jeremy}}}"+")|\n|''At least one word'' must exist|Separate words by ''or''|{{{jonny or jeremy}}}|\n|A word ''must "+"not exist''|Start word with ''-''|{{{-jonny}}} (or {{{not jonny}}})|\n\n''Note:'' When you specify two"+" words, separated with a space, YourSearch finds all tiddlers that contain both words, but not neces"+"sarily next to each other. If you want to find a sequence of word, e.g. '{{{John Brown}}}', you need"+" to put the words into quotes. I.e. you type: {{{\"john brown\"}}}.\n\nUsing parenthesis you may change "+"the default \"left to right\" evaluation of the boolean search. E.g. {{{not (jonny or jeremy)}}} finds"+" all tiddlers that contain neither \"jonny\" nor \"jeremy. In contrast to this {{{not jonny or jeremy}}"+"} (i.e. without parenthesis) finds all tiddlers that either don't contain \"jonny\" or that contain \"j"+"eremy\".\n\n!'Exact Word' Search\nBy default a search result all matches that 'contain' the searched tex"+"t. E.g. if you search for {{{Task}}} you will get all tiddlers containing 'Task', but also '~Complet"+"edTask', '~TaskForce' etc.\n\nIf you only want to get the tiddlers that contain 'exactly the word' you"+" need to prefix it with a '='. E.g. typing '=Task' will find the tiddlers that contain the word 'Tas"+"k', ignoring words that just contain 'Task' as a substring.\n\n!~CaseSensitiveSearch and ~RegExpSearch"+"\nThe standard search options ~CaseSensitiveSearch and ~RegExpSearch are fully supported by YourSearc"+"h. However when ''~RegExpSearch'' is on Filtered and Boolean Search are disabled.\n\nIn addition you m"+"ay do a \"regular expression\" search even with the ''~RegExpSearch'' set to false by directly enterin"+"g the regular expression into the search field, framed with {{{/.../}}}. \n\nExample: {{{/m[ae][iy]er/"+"}}} will find all tiddlers that contain either \"maier\", \"mayer\", \"meier\" or \"meyer\".\n\n!~JavaScript E"+"xpression Filtering\nIf you are familiar with JavaScript programming and know some TiddlyWiki interna"+"ls you may also use JavaScript expression for the search. Just enter a JavaScript boolean expression"+" into the search field, framed with {{{ { ... } }}}. In the code refer to the variable tiddler and e"+"valuate to {{{true}}} when the given tiddler should be included in the result. \n\nExample: {{{ { tidd"+"ler.modified > new Date(\"Jul 4, 2005\")} }}} returns all tiddler modified after July 4th, 2005.\n\n!Com"+"bined Search\nYou are free to combine the various search options. \n\n''Examples''\n|!What you type|!Res"+"ult|\n|{{{!jonny !jeremy -%football}}}|all tiddlers with both {{{jonny}}} and {{{jeremy}}} in its tit"+"les, but no {{{football}}} in content.|\n|{{{#=Task}}}|All tiddlers tagged with 'Task' (the exact wor"+"d). Tags named '~CompletedTask', '~TaskForce' etc. are not considered.|\n\n!Access Keys\nYou are encour"+"aged to use the access keys (also called \"shortcut\" keys) for the most frequently used operations. F"+"or quick reference these shortcuts are also mentioned in the tooltip for the various buttons etc.\n\n|"+"!Key|!Operation|\n|{{{Alt-F}}}|''The most important keystroke'': It moves the cursor to the search in"+"put field so you can directly start typing your query. Pressing {{{Alt-F}}} will also display the pr"+"evious search result. This way you can quickly display multiple tiddlers using \"Press {{{Alt-F}}}. S"+"elect tiddler.\" sequences.|\n|{{{ESC}}}|Closes the [[YourSearch Result]]. When the [[YourSearch Resul"+"t]] is already closed and the cursor is in the search input field the field's content is cleared so "+"you start a new query.|\n|{{{Alt-1}}}, {{{Alt-2}}},... |Pressing these keys opens the first, second e"+"tc. tiddler from the result list.|\n|{{{Alt-O}}}|Opens all found tiddlers.|\n|{{{Alt-P}}}|Toggles the "+"'Preview Text' mode.|\n|{{{Alt-'<'}}}, {{{Alt-'>'}}}|Displays the previous or next page in the [[Your"+"Search Result]].|\n|{{{Return}}}|When you have turned off the 'as you type' search mode pressing the "+"{{{Return}}} key actually starts the search (as does pressing the 'search' button).|\n\n//If some of t"+"hese shortcuts don't work for you check your browser if you have other extensions installed that alr"+"eady \"use\" these shortcuts.//";config.shadowTiddlers["YourSearch Options"]="|>|!YourSearch Options|\n|>|<<option chkUseYourSearch>> Use 'Your Search'|\n|!|<<option chkPreviewText"+">> Show Text Preview|\n|!|<<option chkSearchAsYouType>> 'Search As You Type' Mode (No RETURN required"+" to start search)|\n|!|Default Search Filter:<<option chkSearchInTitle>>Title ('!')     <<option chk"+"SearchInText>>Text ('%')     <<option chkSearchInTags>>Tags ('#')    <<option chkSearchExtendedFiel"+"ds>>Extended Fields<html><br><font size=\"-2\">The fields of a tiddlers that are searched when you don"+"'t explicitly specify a filter in the search text <br>(Explictly specify fields using one or more '!"+"', '%', '#' or 'fieldname:' prefix before the word/text to find).</font></html>|\n|!|Number of items "+"on search result page: <<option txtItemsPerPage>>|\n|!|Number of items on search result page with pre"+"view text: <<option txtItemsPerPageWithPreview>>|\n";config.shadowTiddlers["YourSearchStyleSheet"]="/***\n!~YourSearchResult Stylesheet\n***/\n/*{{{*/\n.yourSearchResult {\n\tposition: absolute;\n\twidth: 800"+"px;\n\n\tpadding: 0.2em;\n\tlist-style: none;\n\tmargin: 0;\n\n\tbackground: #ffd;\n\tborder: 1px solid DarkGra"+"y;\n}\n\n/*}}}*/\n/***\n!!Summary Section\n***/\n/*{{{*/\n.yourSearchResult .summary {\n\tborder-bottom-width:"+" thin;\n\tborder-bottom-style: solid;\n\tborder-bottom-color: #999999;\n\tpadding-bottom: 4px;\n}\n\n.yourSea"+"rchRange, .yourSearchCount, .yourSearchQuery   {\n\tfont-weight: bold;\n}\n\n.yourSearchResult .summary ."+"button {\n\tfont-size: 10px;\n\n\tpadding-left: 0.3em;\n\tpadding-right: 0.3em;\n}\n\n.yourSearchResult .summa"+"ry .chkBoxLabel {\n\tfont-size: 10px;\n\n\tpadding-right: 0.3em;\n}\n\n/*}}}*/\n/***\n!!Items Area\n***/\n/*{{{*"+"/\n.yourSearchResult .marked {\n\tbackground: none;\n\tfont-weight: bold;\n}\n\n.yourSearchItem {\n\tmargin-to"+"p: 2px;\n}\n\n.yourSearchNumber {\n\tcolor: #808080;\n}\n\n\n.yourSearchTags {\n\tcolor: #008000;\n}\n\n.yourSearc"+"hText {\n\tcolor: #808080;\n\tmargin-bottom: 6px;\n}\n\n/*}}}*/\n/***\n!!Footer\n***/\n/*{{{*/\n.yourSearchFoote"+"r {\n\tmargin-top: 8px;\n\tborder-top-width: thin;\n\tborder-top-style: solid;\n\tborder-top-color: #999999;"+"\n}\n\n.yourSearchFooter a:hover{\n\tbackground: none;\n\tcolor: none;\n}\n/*}}}*/\n/***\n!!Navigation Bar\n***/"+"\n/*{{{*/\n.yourSearchNaviBar a {\n\tfont-size: 16px;\n\tmargin-left: 4px;\n\tmargin-right: 4px;\n\tcolor: bla"+"ck;\n\ttext-decoration: underline;\n}\n\n.yourSearchNaviBar a:hover {\n\tbackground-color: none;\n}\n\n.yourSe"+"archNaviBar .prev {\n\tfont-weight: bold;\n\tcolor: blue;\n}\n\n.yourSearchNaviBar .currentPage {\n\tcolor: #"+"FF0000;\n\tfont-weight: bold;\n\ttext-decoration: none;\n}\n\n.yourSearchNaviBar .next {\n\tfont-weight: bold"+";\n\tcolor: blue;\n}\n/*}}}*/\n";config.shadowTiddlers["YourSearchResultTemplate"]="<!--\n{{{\n-->\n<span macro=\"yourSearch if found\">\n<!-- The Summary Header ============================"+"================ -->\n<table class=\"summary\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">"+"<tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Result <span class=\"yourSearchRange\" macro=\"yourSearc"+"h itemRange\"></span>\n\t\t&nbsp;of&nbsp;<span class=\"yourSearchCount\" macro=\"yourSearch count\"></span>\n"+"\t\tfor&nbsp;<span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>\n\t</td>\n\t<td class=\"yourSea"+"rchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch chkPreviewText\"></span><span class=\"chkBoxLabel"+"\">preview text</span>\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch openAllButton\"></span>\n\t\t<span macro=\"yourSearch lin"+"kButton 'YourSearch Options' options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkB"+"utton 'YourSearch Help' help 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch clo"+"seButton\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n\n<!-- The List of Found Tiddlers ================="+"=========================== -->\n<div id=\"yourSearchResultItems\" itemsPerPage=\"25\" itemsPerPageWithPr"+"eview=\"10\"></div>\n\n<!-- The Footer (with the Navigation) ==========================================="+"= -->\n<table class=\"yourSearchFooter\" border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody"+">\n  <tr>\n\t<td align=\"left\">\n\t\tResult page: <span class=\"yourSearchNaviBar\" macro=\"yourSearch naviBar"+"\"></span>\n\t</td>\n\t<td align=\"right\"><span macro=\"yourSearch version\"></span>, <span macro=\"yourSearc"+"h copyright\"></span>\n\t</td>\n  </tr>\n</tbody></table>\n<!-- end of the 'tiddlers found' case ========="+"================================== -->\n</span>\n\n\n<!-- The \"No tiddlers found\" case ================="+"========================== -->\n<span macro=\"yourSearch if not found\">\n<table class=\"summary\" border="+"\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\"><tbody>\n  <tr>\n\t<td align=\"left\">\n\t\tYourSearch Resu"+"lt: No tiddlers found for <span class=\"yourSearchQuery\" macro=\"yourSearch query\"></span>.\n\t</td>\n\t<t"+"d class=\"yourSearchButtons\" align=\"right\">\n\t\t<span macro=\"yourSearch newTiddlerButton\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Options'"+" options 'Configure YourSearch'\"></span>\n\t\t<span macro=\"yourSearch linkButton 'YourSearch Help' help"+" 'Get help how to use YourSearch'\"></span>\n\t\t<span macro=\"yourSearch closeButton\"></span>\n\t</td>\n  <"+"/tr>\n</tbody></table>\n</span>\n\n\n<!--\n}}}\n-->\n";config.shadowTiddlers["YourSearchItemTemplate"]="<!--\n{{{\n-->\n<span class='yourSearchNumber' macro='foundTiddler number'></span>\n<span class='yourSea"+"rchTitle' macro='foundTiddler title'/></span>&nbsp;-&nbsp;\n<span class='yourSearchTags' macro='found"+"Tiddler field tags 50'/></span>\n<span macro=\"yourSearch if previewText\"><div class='yourSearchText' macro='fo"+"undTiddler field text 250'/></div></span>\n<!--\n}}}\n-->";config.shadowTiddlers["YourSearch"]="<<tiddler [[YourSearch Help]]>>";config.shadowTiddlers["YourSearch Result"]="The popup-like window displaying the result of a YourSearch query.";config.macros.search.handler=_109;var _195=function(){if(config.macros.search.handler!=_109){alert("Message from YourSearchPlugin:\n\n\nAnother plugin has disabled the 'Your Search' features.\n\n\nYou may "+"disable the other plugin or change the load order of \nthe plugins (by changing the names of the tidd"+"lers)\nto enable the 'Your Search' features.");}};setTimeout(_195,5000);abego.YourSearch.getStandardRankFunction=function(){return _bb;};abego.YourSearch.getRankFunction=function(){return abego.YourSearch.getStandardRankFunction();};abego.YourSearch.getCurrentTiddler=function(){return _f4;};abego.YourSearch.closeResult=function(){_e3();};abego.YourSearch.getFoundTiddlers=function(){return _b1;};abego.YourSearch.getQuery=function(){return _b2;};abego.YourSearch.onShowResult=function(_196){highlightHack=_b2?_b2.getMarkRegExp():null;if(!_196){_f5.setItems(_b5());}if(!_dd){_dd=createTiddlyElement(document.body,"div",_da,"yourSearchResult");}else{if(_dd.parentNode!=document.body){document.body.appendChild(_dd);}}_fe();highlightHack=null;};})();}
//%/
<html><table>
	<tr><th>Тип связи</th><th>Значение</th><th>Примечание</th></tr>
	<tr class="odd"><td rowspan=2 class="evn mid">Тел.<br>(phones):</td><td class="mid">+7(342)298-56-08</td><td class="remark">моб. (mobile)</td></tr>
	<tr class="evn"><td class="mid">+7(342)261-91-53</td><td class="remark">дом. (home)</td></tr>
	<tr class="odd"><td class="mid">Аська (ICQ):</td><td class="mid">470-208-921</td><td class="remark">запросы авторизации отключены (для уменьшения количества спама), поэтому сначала просто сообщение пишите, чтобы я вас увидел<br>(authorisation query off, so send me a simple message first)</td></tr>
	<tr class="evn"><td class="mid">Скайп (Skype):</td><td class="mid">vmunt.in.skype</td><td /></tr>
	<tr class="odd"><td class="mid">Jabber/XMPP:</td><td class="mid">vmunt <span class="remark">(большая собачка)</span> jabber <span class="remark">(маленькая точка)</span> ru</td><td /></tr>
	<tr class="evn"><td class="mid">Почта (mail):</td><td class="mid">vmunt <span class="remark">(большая собачка)</span> мэйл <span class="remark">(маленькая точка)</span> ру</td><td /></tr>
	<tr class="odd"><td class="mid">Сайт (www):</td><td class="mid">vmunt.site</td><td /></tr>
</table></html>
<html>
<style type="text/css">
H1.news { float:left; margin-right:1em }
</style>
<h1 class="news">10.07.2011</h1>
<p>Поставил себе Internet Explorer 8, в результате выяснилось, что вся вёрстка, нормально работавшая в FireFox-е, IE6 и IE7, в IE8 невероятно поплыла. Ребята из Microsoft опять в очередной раз поменяли своё видение стандартов W3C. Поправил стилевую табличку, но:</p>
<ul>
<li>В результате пришлось вынести стилевое оформление, используемое в новом симпатичном шаблоне с подвальчиком, в совсем не предназначенное для этого место</li>
<li>При использовании этого не предназначенного места опять же нормальные браузеры ведут себя совершенно адекватно, но в IE8 <span class="remark">(IE7 не проверял, ибо нет его уже)</span> вёрстка начала плыть уже совершенно уникальным способом. Всё ещё осложняется тем, что под IE8 IE Developers Toolbar перестал быть удобным инструментом для отладки TiddlyWiki</li>
</ul>
<p>Таким образом:</p>
<ol>
<li>публикация нового симпатичного шаблона с подвальчиком пока откладывается на неопределённый срок, и</li>
<li>что-то у меня чем дальше, тем сильнее возникает желание забыть про поддержку браузеров от Microsoft <span class="remark">(ибо плевать на стандарты W3C они могут сколько угодно, конечно, но если я буду к каждому браузеру от MS искать обходные пути и использовать всякие хаки, то TiddlyWiki перестанет при этом быть удобным инструментом (раз), и времени на новые полезные штучки у меня уже при этом точно не будет (два)</li>
</ol>
<p>Как-то так&hellip;</p>
<h1 class="news">5.07.2011</h1>
<p>Слегка изменил организацию меню, расширил <a class="tiddlyLink tiddlyLinkExisting" href="javascript:;" onclick="onClickTiddlerLink(event)" title="Заметка Скачивание" tiddlyLink="Скачивание">область скачивания</a> <span class="remark">(для лучшего понимания структуры общедоступного содержимого на сайте)</span>.</p>
<p>Также перенёс переводы TiddlyWiki более ранних версий в архив <span class="remark">(ибо версия 2.6.2 заметно лучше предыдущих, и смысла использовать старые версии, на мой взгляд, нет. Импорт в новой версии стал работать устойчиво как в FireFox, так и в Internet Explorer (проверял версию 7.0), плюс появилась сервисная заметка [[SystemSettings]], позволяющая производить настройку поведения TiddlyWiki по умолчанию)</span>.</p>
</html>
|!Описание|!Минимальный комплект|!Полный комплект|
|Русификация 2.6.2| [[только замена сообщений|./plugins/TiddlyWiki.2.6.2.empty.html]] | [[русские сообщения и сервисные заметки|./plugins/TiddlyWiki.2.6.2.rus.html]] |
|Русификация 2.6.4| [[только замена сообщений|./plugins/TiddlyWiki.2.6.4.empty.html]] | [[русские сообщения и сервисные заметки|./plugins/TiddlyWiki.2.6.4.rus.html]] |
|Русификация 2.8.1| [[только замена сообщений|./plugins/TiddlyWiki.2.8.1.empty.html]] | [[русские сообщения и сервисные заметки|./plugins/TiddlyWiki.2.8.1.rus.html]] |
|Справочная вики| [[последний вариант|./tw.tutorial.rus.html]] | [[возможно, не самый актуальный архив, но зато с доп.материалами в комплекте|./tw.tutorial.rus.zip]] |
|Модуль [[ImportTablePlugin]] {{remark{(расширяет информативность таблицы импорта заметок/плагинов/шаблонов из других TiddlyWiki, отображает совпадения имён заметок и выделяет разными цветами отличия в датах)}}} | [[последний вариант|./plugins/importTablePlugin.html]] | |
|Модуль [[ExcludeOrphansPlugin]] {{remark{(поддержка тега excludeOrphans, который позволяет заметки, на которые нет ни одной ссылки (например, загруженные модули), не отображать в списке Потери)}}}| [[последний вариант|./plugins/excludeOrphansPlugin.html]] | |
|Модуль [[TableHeadersPlugin]] {{remark{(разрешает использование в таблицах заголовков любого уровня (!, !!, !!! и так далее). Удобно для быстрого оформления разделов таблиц (как, например, раздел Архив в этой табличке)))}}}| [[последний вариант|./plugins/tableHeadersPlugin.html]] | [[модуль, палитра и простая таблица стилей|./plugins/tableHeadersPlugin.and.styles.html#GettingStarted StyleSheet]] |
|Двухколоночный шаблон в стандартной цветовой палитре| только раскладка экрана и палитра (пока отсутствует)/%|./plugins/vmunt.template.std.html]]%/ | [[вместе с русификацией и дополнительными модулями|./plugins/vmunt.template.std.full.html]] |
|Двухколоночный шаблон в светло-голубых тонах {{remark{(светло-голубые, светло-зелёные и прочие шаблончики будут чуть позже (вместе с новым шаблончиком с плавающим подвалом. Хочу сделать раздельные и при этом взаимодополняемые комплекты шаблонов вида экрана и шаблонов цветового оформления, но так как делаю это редкими набегами, то пока просто зарезервировал место в этой таблице, чтобы утрясти свои мысли, как эта страничка в принципе должна выглядеть)}}}| только раскладка экрана и палитра/%|./plugins/vmunt.template.lightblue.html]]%/ | вместе с русификацией и дополнительными модулями/%|./plugins/vmunt.template.lightblue.full.html]]%/ |
{{remark{Примечания:
* Пока выложил новую структуру заметки, но не все новые материалы пока выложены. Думаю, за эту неделю заполню всю табличку
* Модули будут чуток переписаны: получится стандартный двойной комплект — внутри модулей будет инструкция по использованию на английском языке и дополнительные одноимённые заметки с суффиксом {{{:rus}}} с инструкциями на русском языке, которые станут в том числе и составной частью справочника
}}}
<html>
<p>Что такое TiddlyWiki, можно прочитать <b><a href=tw.tutorial.rus.html#TiddlyWiki>здесь</a></b> <span class="remark">(пока неспешно набегами пишу этот справочник под настроение и наличие свободного времени, которое редкость)</span>.</p>

<p>Скачать этот справочник в архиве <span class="remark">(вместе с картинками)</span> можно <b><a href=tw.tutorial.rus.zip>отсюда</a></b> <span class="remark">(гарантированно обновляю архив тогда, когда меняю набор картинок и прочих внешних дополнительных материалов. Изменённый HTML-файл автоматически в архив складывать сложнее. Поэтому не поленитесь, пожалуйста (если вдруг заметите, что справочник на сайте чуток новее, что сразу видно по истории в боковой панели), просто поверх распакованного содержимого архива просто сохранить ещё из браузера страничку из браузера (или в файле tw.tutorial.rus.html заменить целиком исходный текст на исходный текст опять же свеженький из браузера)</span>.</p>

<p>Пустой шаблон с русским языком и другими сразу встроенными некоторыми полезными плагинами <b><a href=./plugins/vmunt.template.std.full.html>лежит тут</a></b> <span class="remark">(можно открыть и сохранить страничку, а можно сразу выбрать "Сохранить объект как&hellip;". Сохранится полностью работоспособный HTML-файл, содержащий вики с моими любимыми плагинами, размером около 500 килобайт)</span>.</p>

<h1>Примеры использования</h1>

<p>Я этот замечательный инструмент Джереми Растона <span class="remark">(Jeremy Ruston)</span> использую давно <span class="remark">(с версии 2.4, емнип)</span>. У меня в этих вики лежит куча всяких заметок для памяти <span class="remark">(чтобы не забывать всякую редко нужную информацию)</span>.</p>

<p>В конторе я вывесил TiddlyWiki на внутреннюю стартовую конторскую страничку <span class="remark">(ссылки на внутренние ресурсы локальной сети, конторские объявления)</span>, ну а в эту TiddlyWiki уже коллективом все занесли свои телефоны/контакты, технические данные всякие для работы, контакты и телефоны клиентов, какие-то спецификации отчётов, и прочее.</p>

<p>Есть там также пара интересных сочинений сотрудников в разделе Лирика, некоторые заметки <span class="remark">(безопасные для публикации)</span> по внутреннему устройству информационных систем нашей организации <span class="remark">(используется много удобных учётных инструментов, написанных на PHP / ASP / MySQL / &hellip;, поэтому всё это удержать в голове просто нереально, да и в случае увольнения передать дела будет в разы проще)</span>.</p>

<p>Соответственно, этот справочник каждый видит у себя через браузер в конторе, каждый может унести его с собой домой и иметь список сотрудников с телефонами и дома тоже, быстрый поиск по заметкам, богатые возможности оформления <span class="remark">(кроме вики-разметки доступен также и чистый HTML, и CSS в том числе)</span>, и <span class="remark">(что очень ценится многими)</span> — всё это богатство <b>совершенно бесплатно!</b>.</p>

<p>Некоторые TiddlyWiki используют просто как свой сайт. Наполнил у себя на компьютере TiddlyWiki содержимым <span class="remark">(без всяких заморочек с установками Apache+PHP+MySQL)</span>, переложил файлы на хостинг — и всё! Сайт готов! И никому платить не надо&hellip;</p>

<h1>Что тут будет лежать (типа, мечты)</h1>

<p>Со временем чуток доделаю плагин замены импорта заметок <span class="remark">(который расположен в меню Обслуживание)</span>, подключу ко всем файлам симпатичный плагин, позволяющий делать скрываемые блоки внутри заметки <span class="remark">(это позволит писать многоязычные заметки. Очень удобно будет)</span>. Ну и хочется заодно встроить сразу плагины сортировки столбцов таблицы <span class="remark">(иногда бывает очень нужно)</span> и плагин напоминалок <span class="remark">(о днях рождения всяких напоминать, о делах, проблемах, прочими временными отметками)</span>. И для всего этого будет нужен только бесплатный браузер. И всё!</p>

</html>